summaryrefslogtreecommitdiff
path: root/drivers/staging/rtl8712/rtl871x_mlme.c
diff options
context:
space:
mode:
authorGeliang Tang <geliangtang@163.com>2016-02-01 22:47:03 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-02-07 19:53:04 -0800
commit818ff7b28b7777ac71d13215bc7a332e126da268 (patch)
treecd16f34705947eb6775369996e83d15fcc66944a /drivers/staging/rtl8712/rtl871x_mlme.c
parent97e2ba90fc89f375e88ad5d825c149fb82d8207b (diff)
staging: rtl8712: use list_first_entry_or_null()
Use list_first_entry_or_null() instead of list_empty() + LIST_CONTAINOR() to simplify the code. Signed-off-by: Geliang Tang <geliangtang@163.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rtl8712/rtl871x_mlme.c')
-rw-r--r--drivers/staging/rtl8712/rtl871x_mlme.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/staging/rtl8712/rtl871x_mlme.c b/drivers/staging/rtl8712/rtl871x_mlme.c
index 04f727fc95ea..1b022dbda046 100644
--- a/drivers/staging/rtl8712/rtl871x_mlme.c
+++ b/drivers/staging/rtl8712/rtl871x_mlme.c
@@ -87,16 +87,15 @@ struct wlan_network *_r8712_alloc_network(struct mlme_priv *pmlmepriv)
unsigned long irqL;
struct wlan_network *pnetwork;
struct __queue *free_queue = &pmlmepriv->free_bss_pool;
- struct list_head *plist = NULL;
- if (list_empty(&free_queue->queue))
- return NULL;
spin_lock_irqsave(&free_queue->lock, irqL);
- plist = free_queue->queue.next;
- pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list);
- list_del_init(&pnetwork->list);
- pnetwork->last_scanned = jiffies;
- pmlmepriv->num_of_scanned++;
+ pnetwork = list_first_entry_or_null(&free_queue->queue,
+ struct wlan_network, list);
+ if (pnetwork) {
+ list_del_init(&pnetwork->list);
+ pnetwork->last_scanned = jiffies;
+ pmlmepriv->num_of_scanned++;
+ }
spin_unlock_irqrestore(&free_queue->lock, irqL);
return pnetwork;
}