staging: r8188eu: simplify rtw_alloc_xmitframe
authorMartin Kaiser <martin@kaiser.cx>
Tue, 7 Feb 2023 19:23:14 +0000 (20:23 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Feb 2023 12:30:00 +0000 (13:30 +0100)
Make the rtw_alloc_xmitframe function a bit simpler.

The container_of() call never returns NULL. The if (pxframe) check is
false only if pfree_xmit_queue is empty. Handle this special case
explicitly and save one level of indentation.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
Link: https://lore.kernel.org/r/20230207192319.294203-3-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_xmit.c

index 4d6210d895333100def661bfea208827cce559c2..6ec342b726f908e5059e9efabdfea7d157155194 100644 (file)
@@ -1256,38 +1256,32 @@ struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* _queue *pf
 
        spin_lock_bh(&pfree_xmit_queue->lock);
 
-       if (list_empty(&pfree_xmit_queue->queue)) {
-               pxframe =  NULL;
-       } else {
-               phead = get_list_head(pfree_xmit_queue);
-
-               plist = phead->next;
+       if (list_empty(&pfree_xmit_queue->queue))
+               goto out;
 
-               pxframe = container_of(plist, struct xmit_frame, list);
-
-               list_del_init(&pxframe->list);
-       }
+       phead = get_list_head(pfree_xmit_queue);
+       plist = phead->next;
+       pxframe = container_of(plist, struct xmit_frame, list);
+       list_del_init(&pxframe->list);
 
-       if (pxframe) { /* default value setting */
-               pxmitpriv->free_xmitframe_cnt--;
+       pxmitpriv->free_xmitframe_cnt--;
 
-               pxframe->buf_addr = NULL;
-               pxframe->pxmitbuf = NULL;
+       pxframe->buf_addr = NULL;
+       pxframe->pxmitbuf = NULL;
 
-               memset(&pxframe->attrib, 0, sizeof(struct pkt_attrib));
-               /* pxframe->attrib.psta = NULL; */
+       memset(&pxframe->attrib, 0, sizeof(struct pkt_attrib));
+       /* pxframe->attrib.psta = NULL; */
 
-               pxframe->frame_tag = DATA_FRAMETAG;
+       pxframe->frame_tag = DATA_FRAMETAG;
 
-               pxframe->pkt = NULL;
-               pxframe->pkt_offset = 1;/* default use pkt_offset to fill tx desc */
+       pxframe->pkt = NULL;
+       pxframe->pkt_offset = 1;/* default use pkt_offset to fill tx desc */
 
-               pxframe->agg_num = 1;
-               pxframe->ack_report = 0;
-       }
+       pxframe->agg_num = 1;
+       pxframe->ack_report = 0;
 
+out:
        spin_unlock_bh(&pfree_xmit_queue->lock);
-
        return pxframe;
 }