Commit 22537481 authored by Martin Kaiser's avatar Martin Kaiser Committed by Greg Kroah-Hartman
Browse files

staging: rtl8188eu: use safe iterator in rtw_sta_flush



Use list_for_each_entry_safe, we may delete list items while iterating
over the list.

Fixes: 23017c88 ("staging: rtl8188eu: Use list iterators and helpers")
Signed-off-by: default avatarMartin Kaiser <martin@kaiser.cx>
Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20210517201826.25150-5-martin@kaiser.cx


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b0f2044c
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -1573,8 +1573,8 @@ u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta,

int rtw_sta_flush(struct adapter *padapter)
{
	struct list_head *phead, *plist;
	struct sta_info *psta = NULL;
	struct list_head *phead;
	struct sta_info *psta, *temp;
	struct sta_priv *pstapriv = &padapter->stapriv;
	struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
	struct mlme_ext_info	*pmlmeinfo = &pmlmeext->mlmext_info;
@@ -1588,9 +1588,7 @@ int rtw_sta_flush(struct adapter *padapter)
	spin_lock_bh(&pstapriv->asoc_list_lock);
	phead = &pstapriv->asoc_list;
	/* free sta asoc_queue */
	list_for_each(plist, phead) {
		psta = list_entry(plist, struct sta_info, asoc_list);

	list_for_each_entry_safe(psta, temp, phead, asoc_list) {
		list_del_init(&psta->asoc_list);
		pstapriv->asoc_list_cnt--;