summaryrefslogtreecommitdiffstats
path: root/drivers/staging/rtl8712/rtl871x_sta_mgt.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_sta_mgt.c
parent97e2ba90fc89f375e88ad5d825c149fb82d8207b (diff)
downloadop-kernel-dev-818ff7b28b7777ac71d13215bc7a332e126da268.zip
op-kernel-dev-818ff7b28b7777ac71d13215bc7a332e126da268.tar.gz
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_sta_mgt.c')
-rw-r--r--drivers/staging/rtl8712/rtl871x_sta_mgt.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/staging/rtl8712/rtl871x_sta_mgt.c b/drivers/staging/rtl8712/rtl871x_sta_mgt.c
index d5e18aa..3fe45b6 100644
--- a/drivers/staging/rtl8712/rtl871x_sta_mgt.c
+++ b/drivers/staging/rtl8712/rtl871x_sta_mgt.c
@@ -111,13 +111,11 @@ struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
unsigned long flags;
pfree_sta_queue = &pstapriv->free_sta_queue;
- spin_lock_irqsave(&(pfree_sta_queue->lock), flags);
- if (list_empty(&pfree_sta_queue->queue)) {
- psta = NULL;
- } else {
- psta = LIST_CONTAINOR(pfree_sta_queue->queue.next,
- struct sta_info, list);
- list_del_init(&(psta->list));
+ spin_lock_irqsave(&pfree_sta_queue->lock, flags);
+ psta = list_first_entry_or_null(&pfree_sta_queue->queue,
+ struct sta_info, list);
+ if (psta) {
+ list_del_init(&psta->list);
_init_stainfo(psta);
memcpy(psta->hwaddr, hwaddr, ETH_ALEN);
index = wifi_mac_hash(hwaddr);
@@ -125,7 +123,7 @@ struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
psta = NULL;
goto exit;
}
- phash_list = &(pstapriv->sta_hash[index]);
+ phash_list = &pstapriv->sta_hash[index];
list_add_tail(&psta->hash_list, phash_list);
pstapriv->asoc_sta_count++;
@@ -149,7 +147,7 @@ struct sta_info *r8712_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
}
}
exit:
- spin_unlock_irqrestore(&(pfree_sta_queue->lock), flags);
+ spin_unlock_irqrestore(&pfree_sta_queue->lock, flags);
return psta;
}
OpenPOWER on IntegriCloud