Commit f141c234 authored by Martin Kaiser's avatar Martin Kaiser Committed by Greg Kroah-Hartman

staging: r8188eu: simplify rtw_alloc_xmitframe

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: default avatarMartin 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.cxSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent aec9b5bb
...@@ -1256,38 +1256,32 @@ struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* _queue *pf ...@@ -1256,38 +1256,32 @@ struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* _queue *pf
spin_lock_bh(&pfree_xmit_queue->lock); spin_lock_bh(&pfree_xmit_queue->lock);
if (list_empty(&pfree_xmit_queue->queue)) { if (list_empty(&pfree_xmit_queue->queue))
pxframe = NULL; goto out;
} else {
phead = get_list_head(pfree_xmit_queue);
plist = phead->next;
pxframe = container_of(plist, struct xmit_frame, list); phead = get_list_head(pfree_xmit_queue);
plist = phead->next;
list_del_init(&pxframe->list); 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->buf_addr = NULL;
pxframe->pxmitbuf = NULL; pxframe->pxmitbuf = NULL;
memset(&pxframe->attrib, 0, sizeof(struct pkt_attrib)); memset(&pxframe->attrib, 0, sizeof(struct pkt_attrib));
/* pxframe->attrib.psta = NULL; */ /* pxframe->attrib.psta = NULL; */
pxframe->frame_tag = DATA_FRAMETAG; pxframe->frame_tag = DATA_FRAMETAG;
pxframe->pkt = NULL; pxframe->pkt = NULL;
pxframe->pkt_offset = 1;/* default use pkt_offset to fill tx desc */ pxframe->pkt_offset = 1;/* default use pkt_offset to fill tx desc */
pxframe->agg_num = 1; pxframe->agg_num = 1;
pxframe->ack_report = 0; pxframe->ack_report = 0;
}
out:
spin_unlock_bh(&pfree_xmit_queue->lock); spin_unlock_bh(&pfree_xmit_queue->lock);
return pxframe; return pxframe;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment