Commit 2cb5780a authored by Geliang Tang's avatar Geliang Tang Committed by Greg Kroah-Hartman
Browse files

staging: rtl8723au: core: rtw_xmit: use list_first_entry_or_null()



Use list_first_entry_or_null() instead of list_empty() + container_of()
to simplify the code.

Signed-off-by: default avatarGeliang Tang <geliangtang@163.com>
Acked-by: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8584394b
Loading
Loading
Loading
Loading
+8 −18
Original line number Diff line number Diff line
@@ -1443,24 +1443,18 @@ Must be very very cautious...
*/
static struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)
{
	struct xmit_frame *pxframe = NULL;
	struct list_head *plist, *phead;
	struct xmit_frame *pxframe;
	struct rtw_queue *pfree_xmit_queue = &pxmitpriv->free_xmit_queue;

	spin_lock_bh(&pfree_xmit_queue->lock);

	if (list_empty(&pfree_xmit_queue->queue)) {
	pxframe = list_first_entry_or_null(&pfree_xmit_queue->queue,
					   struct xmit_frame, list);
	if (!pxframe) {
		RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_,
			 "rtw_alloc_xmitframe:%d\n",
			 pxmitpriv->free_xmitframe_cnt);
		pxframe =  NULL;
	} else {
		phead = get_list_head(pfree_xmit_queue);

		plist = phead->next;

		pxframe = container_of(plist, struct xmit_frame, list);

		list_del_init(&pxframe->list);
		pxmitpriv->free_xmitframe_cnt--;
		RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_,
@@ -1477,22 +1471,18 @@ static struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)

struct xmit_frame *rtw_alloc_xmitframe23a_ext(struct xmit_priv *pxmitpriv)
{
	struct xmit_frame *pxframe = NULL;
	struct list_head *plist, *phead;
	struct xmit_frame *pxframe;
	struct rtw_queue *queue = &pxmitpriv->free_xframe_ext_queue;

	spin_lock_bh(&queue->lock);

	if (list_empty(&queue->queue)) {
	pxframe = list_first_entry_or_null(&queue->queue,
					   struct xmit_frame, list);
	if (!pxframe) {
		RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_,
			 "rtw_alloc_xmitframe23a_ext:%d\n",
			 pxmitpriv->free_xframe_ext_cnt);
		pxframe =  NULL;
	} else {
		phead = get_list_head(queue);
		plist = phead->next;
		pxframe = container_of(plist, struct xmit_frame, list);

		list_del_init(&pxframe->list);
		pxmitpriv->free_xframe_ext_cnt--;
		RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_,