Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1346705
| From | Geliang Tang <geliangtang@163.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v2 2/3] staging: rtl8723au: core: rtw_xmit: use list_first_entry_or_null() |
| Date | 2016-03-01 16:40 +0100 |
| Message-ID | <r7Uz0-2wf-15@gated-at.bofh.it> (permalink) |
| References | <r7Uz0-2wf-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Use list_first_entry_or_null() instead of list_empty() + container_of()
to simplify the code.
Signed-off-by: Geliang Tang <geliangtang@163.com>
Acked-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
drivers/staging/rtl8723au/core/rtw_xmit.c | 26 ++++++++------------------
1 file changed, 8 insertions(+), 18 deletions(-)
diff --git a/drivers/staging/rtl8723au/core/rtw_xmit.c b/drivers/staging/rtl8723au/core/rtw_xmit.c
index b82b182..3de40cf 100644
--- a/drivers/staging/rtl8723au/core/rtw_xmit.c
+++ b/drivers/staging/rtl8723au/core/rtw_xmit.c
@@ -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_,
--
2.5.0
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH] staging: rtl8723au: use list_first_entry* Geliang Tang <geliangtang@163.com> - 2016-02-23 01:40 +0100
Re: [PATCH] staging: rtl8723au: use list_first_entry* Jes Sorensen <Jes.Sorensen@redhat.com> - 2016-02-23 03:40 +0100
[PATCH v2 0/3] staging: rtl8723au: use list_first_entry* Geliang Tang <geliangtang@163.com> - 2016-03-01 16:40 +0100
[PATCH v2 3/3] staging: rtl8723au: core: rtw_recv: use list_first_entry() Geliang Tang <geliangtang@163.com> - 2016-03-01 16:40 +0100
[PATCH v2 2/3] staging: rtl8723au: core: rtw_xmit: use list_first_entry_or_null() Geliang Tang <geliangtang@163.com> - 2016-03-01 16:40 +0100
[PATCH v2 1/3] staging: rtl8723au: core: rtw_recv: use list_first_entry_or_null() Geliang Tang <geliangtang@163.com> - 2016-03-01 16:40 +0100
csiph-web