staging: rtl8188eu: use safe iterator in rtw_free_xmitframe_queue
authorMartin Kaiser <martin@kaiser.cx>
Mon, 17 May 2021 20:18:26 +0000 (22:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 May 2021 15:54:51 +0000 (17:54 +0200)
Use list_for_each_entry_safe, we may delete list items while iterating
over the list.

Fixes: 23017c8842d2 ("staging: rtl8188eu: Use list iterators and helpers")
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20210517201826.25150-6-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8188eu/core/rtw_xmit.c

index 3763d18..dcc29a7 100644 (file)
@@ -1329,17 +1329,15 @@ exit:
 
 void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, struct __queue *pframequeue)
 {
-       struct list_head *plist, *phead;
-       struct  xmit_frame      *pxmitframe;
+       struct list_head *phead;
+       struct  xmit_frame      *pxmitframe, *temp;
 
        spin_lock_bh(&pframequeue->lock);
 
        phead = get_list_head(pframequeue);
-       list_for_each(plist, phead) {
-               pxmitframe = list_entry(plist, struct xmit_frame, list);
-
+       list_for_each_entry_safe(pxmitframe, temp, phead, list)
                rtw_free_xmitframe(pxmitpriv, pxmitframe);
-       }
+
        spin_unlock_bh(&pframequeue->lock);
 }