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

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.cx


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent aec9b5bb
Loading
Loading
Loading
Loading
+17 −23
Original line number Diff line number Diff line
@@ -1256,19 +1256,14 @@ 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);
	if (list_empty(&pfree_xmit_queue->queue))
		goto out;

	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--;

	pxframe->buf_addr = NULL;
@@ -1284,10 +1279,9 @@ struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* _queue *pf

	pxframe->agg_num = 1;
	pxframe->ack_report = 0;
	}

out:
	spin_unlock_bh(&pfree_xmit_queue->lock);

	return pxframe;
}