OSDN Git Service

staging: r8188eu: this endless loop is executed only once
authorMartin Kaiser <martin@kaiser.cx>
Wed, 8 Sep 2021 08:57:47 +0000 (10:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 Sep 2021 06:49:54 +0000 (08:49 +0200)
There's a funny "loop" in rtl8188eu_xmitframe_complete. It looks like

do {
  ... some commands...
  break;
} while (1);

Remove it.

Acked-by: Michael Straube <straube.linux@gmail.com>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210908085747.32254-4-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/hal/rtl8188eu_xmit.c

index 17be67a..3b870d0 100644 (file)
@@ -437,30 +437,26 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp
        }
 
        /* 3 1. pick up first frame */
-       do {
-               rtw_free_xmitframe(pxmitpriv, pxmitframe);
-
-               pxmitframe = rtw_dequeue_xframe(pxmitpriv, pxmitpriv->hwxmits, pxmitpriv->hwxmit_entry);
-               if (!pxmitframe) {
-                       /*  no more xmit frame, release xmit buffer */
-                       rtw_free_xmitbuf(pxmitpriv, pxmitbuf);
-                       return false;
-               }
+       rtw_free_xmitframe(pxmitpriv, pxmitframe);
 
-               pxmitframe->pxmitbuf = pxmitbuf;
-               pxmitframe->buf_addr = pxmitbuf->pbuf;
-               pxmitbuf->priv_data = pxmitframe;
+       pxmitframe = rtw_dequeue_xframe(pxmitpriv, pxmitpriv->hwxmits, pxmitpriv->hwxmit_entry);
+       if (!pxmitframe) {
+               /*  no more xmit frame, release xmit buffer */
+               rtw_free_xmitbuf(pxmitpriv, pxmitbuf);
+               return false;
+       }
 
-               pxmitframe->agg_num = 1; /*  alloc xmitframe should assign to 1. */
-               pxmitframe->pkt_offset = 1; /*  first frame of aggregation, reserve offset */
+       pxmitframe->pxmitbuf = pxmitbuf;
+       pxmitframe->buf_addr = pxmitbuf->pbuf;
+       pxmitbuf->priv_data = pxmitframe;
 
-               rtw_xmitframe_coalesce(adapt, pxmitframe->pkt, pxmitframe);
+       pxmitframe->agg_num = 1; /*  alloc xmitframe should assign to 1. */
+       pxmitframe->pkt_offset = 1; /*  first frame of aggregation, reserve offset */
 
-               /*  always return ndis_packet after rtw_xmitframe_coalesce */
-               rtw_os_xmit_complete(adapt, pxmitframe);
+       rtw_xmitframe_coalesce(adapt, pxmitframe->pkt, pxmitframe);
 
-               break;
-       } while (1);
+       /*  always return ndis_packet after rtw_xmitframe_coalesce */
+       rtw_os_xmit_complete(adapt, pxmitframe);
 
        /* 3 2. aggregate same priority and same DA(AP or STA) frames */
        pfirstframe = pxmitframe;