[PATCH] wil6210: use memdup_user

2017-05-06 Thread Geliang Tang
Use memdup_user() helper instead of open-coding to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 drivers/net/wireless/ath/wil6210/debugfs.c | 12 
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c 
b/drivers/net/wireless/ath/wil6210/debugfs.c
index 5648ebb..5b0f9fc 100644
--- a/drivers/net/wireless/ath/wil6210/debugfs.c
+++ b/drivers/net/wireless/ath/wil6210/debugfs.c
@@ -795,15 +795,11 @@ static ssize_t wil_write_file_txmgmt(struct file *file, 
const char __user *buf,
struct wireless_dev *wdev = wil_to_wdev(wil);
struct cfg80211_mgmt_tx_params params;
int rc;
-   void *frame = kmalloc(len, GFP_KERNEL);
+   void *frame;
 
-   if (!frame)
-   return -ENOMEM;
-
-   if (copy_from_user(frame, buf, len)) {
-   kfree(frame);
-   return -EIO;
-   }
+   frame = memdup_user(buf, len);
+   if (IS_ERR(frame))
+   return PTR_ERR(frame);
 
params.buf = frame;
params.len = len;
-- 
2.9.3



[PATCH] wlcore: use memdup_user

2017-05-06 Thread Geliang Tang
Use memdup_user() helper instead of open-coding to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 drivers/net/wireless/ti/wlcore/debugfs.c | 13 +++--
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/net/wireless/ti/wlcore/debugfs.c 
b/drivers/net/wireless/ti/wlcore/debugfs.c
index de7e2a5..a2cb408 100644
--- a/drivers/net/wireless/ti/wlcore/debugfs.c
+++ b/drivers/net/wireless/ti/wlcore/debugfs.c
@@ -1149,15 +1149,9 @@ static ssize_t dev_mem_write(struct file *file, const 
char __user *user_buf,
part.mem.start = *ppos;
part.mem.size = bytes;
 
-   buf = kmalloc(bytes, GFP_KERNEL);
-   if (!buf)
-   return -ENOMEM;
-
-   ret = copy_from_user(buf, user_buf, bytes);
-   if (ret) {
-   ret = -EFAULT;
-   goto err_out;
-   }
+   buf = memdup_user(user_buf, bytes);
+   if (IS_ERR(buf))
+   return PTR_ERR(buf);
 
mutex_lock(>mutex);
 
@@ -1197,7 +1191,6 @@ static ssize_t dev_mem_write(struct file *file, const 
char __user *user_buf,
if (ret == 0)
*ppos += bytes;
 
-err_out:
kfree(buf);
 
return ((ret == 0) ? bytes : ret);
-- 
2.9.3



[PATCH v2 2/3] staging: rtl8723au: core: rtw_xmit: use list_first_entry_or_null()

2016-03-01 Thread Geliang Tang
Use list_first_entry_or_null() instead of list_empty() + container_of()
to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@163.com>
Acked-by: Jes Sorensen <jes.soren...@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 = >free_xmit_queue;
 
spin_lock_bh(_xmit_queue->lock);
 
-   if (list_empty(_xmit_queue->queue)) {
+   pxframe = list_first_entry_or_null(_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(>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 = >free_xframe_ext_queue;
 
spin_lock_bh(>lock);
 
-   if (list_empty(>queue)) {
+   pxframe = list_first_entry_or_null(>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(>list);
pxmitpriv->free_xframe_ext_cnt--;
RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_,
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 3/3] staging: rtl8723au: core: rtw_recv: use list_first_entry()

2016-03-01 Thread Geliang Tang
Use list_first_entry() instead of container_of() to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@163.com>
Acked-by: Jes Sorensen <jes.soren...@redhat.com>
---
 drivers/staging/rtl8723au/core/rtw_recv.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c 
b/drivers/staging/rtl8723au/core/rtw_recv.c
index a4dacc3..ceb4a07 100644
--- a/drivers/staging/rtl8723au/core/rtw_recv.c
+++ b/drivers/staging/rtl8723au/core/rtw_recv.c
@@ -1522,7 +1522,7 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
 struct recv_frame *recvframe_defrag(struct rtw_adapter *adapter,
struct rtw_queue *defrag_q)
 {
-   struct list_head *plist, *phead;
+   struct list_head *phead;
u8 wlanhdr_offset;
u8 curfragnum;
struct recv_frame *pnfhdr, *ptmp;
@@ -1534,8 +1534,7 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
pfree_recv_queue = >recvpriv.free_recv_queue;
 
phead = get_list_head(defrag_q);
-   plist = phead->next;
-   prframe = container_of(plist, struct recv_frame, list);
+   prframe = list_first_entry(phead, struct recv_frame, list);
list_del_init(>list);
skb = prframe->pkt;
 
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 0/3] staging: rtl8723au: use list_first_entry*

2016-03-01 Thread Geliang Tang
On Mon, Feb 22, 2016 at 09:39:15PM -0500, Jes Sorensen wrote:
> Geliang Tang <geliangt...@163.com> writes:
> > Use list_first_entry*() instead of container_of() to simplify the code.
> >
> > Signed-off-by: Geliang Tang <geliangt...@163.com>
> > ---
> >  drivers/staging/rtl8723au/core/rtw_recv.c | 49 
> > +--
> >  drivers/staging/rtl8723au/core/rtw_xmit.c | 26 +---
> >  2 files changed, 22 insertions(+), 53 deletions(-)
> 
> This looks fine to me. When these changes gets large, it may be better
> to break them down into multiple patches as it's easier to debug if
> there is a bug somewhere.
>

Changes in v2:
 - split it into three patches.

Geliang Tang (3):
  staging: rtl8723au: core: rtw_recv: use list_first_entry_or_null()
  staging: rtl8723au: core: rtw_xmit: use list_first_entry_or_null()
  staging: rtl8723au: core: rtw_recv: use list_first_entry()

 drivers/staging/rtl8723au/core/rtw_recv.c | 47 +--
 drivers/staging/rtl8723au/core/rtw_xmit.c | 26 ++---
 2 files changed, 21 insertions(+), 52 deletions(-)

-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 1/3] staging: rtl8723au: core: rtw_recv: use list_first_entry_or_null()

2016-03-01 Thread Geliang Tang
Use list_first_entry_or_null() instead of list_empty() + container_of()
to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@163.com>
Acked-by: Jes Sorensen <jes.soren...@redhat.com>
---
 drivers/staging/rtl8723au/core/rtw_recv.c | 42 ---
 1 file changed, 11 insertions(+), 31 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c 
b/drivers/staging/rtl8723au/core/rtw_recv.c
index 0a7741c..a4dacc3 100644
--- a/drivers/staging/rtl8723au/core/rtw_recv.c
+++ b/drivers/staging/rtl8723au/core/rtw_recv.c
@@ -104,21 +104,14 @@ void _rtw_free_recv_priv23a(struct recv_priv *precvpriv)
 struct recv_frame *rtw_alloc_recvframe23a(struct rtw_queue *pfree_recv_queue)
 {
struct recv_frame *pframe;
-   struct list_head *plist, *phead;
struct rtw_adapter *padapter;
struct recv_priv *precvpriv;
 
spin_lock_bh(_recv_queue->lock);
 
-   if (list_empty(_recv_queue->queue))
-   pframe = NULL;
-   else {
-   phead = get_list_head(pfree_recv_queue);
-
-   plist = phead->next;
-
-   pframe = container_of(plist, struct recv_frame, list);
-
+   pframe = list_first_entry_or_null(_recv_queue->queue,
+ struct recv_frame, list);
+   if (pframe) {
list_del_init(>list);
padapter = pframe->adapter;
if (padapter) {
@@ -247,21 +240,13 @@ struct recv_buf *rtw_dequeue_recvbuf23a (struct rtw_queue 
*queue)
 {
unsigned long irqL;
struct recv_buf *precvbuf;
-   struct list_head *plist, *phead;
 
spin_lock_irqsave(>lock, irqL);
 
-   if (list_empty(>queue)) {
-   precvbuf = NULL;
-   } else {
-   phead = get_list_head(queue);
-
-   plist = phead->next;
-
-   precvbuf = container_of(plist, struct recv_buf, list);
-
+   precvbuf = list_first_entry_or_null(>queue,
+   struct recv_buf, list);
+   if (precvbuf)
list_del_init(>list);
-   }
 
spin_unlock_irqrestore(>lock, irqL);
 
@@ -1079,22 +1064,17 @@ static int validate_recv_ctrl_frame(struct rtw_adapter 
*padapter,
 
if ((psta->state & WIFI_SLEEP_STATE) &&
(pstapriv->sta_dz_bitmap & CHKBIT(psta->aid))) {
-   struct list_head *xmitframe_plist, *xmitframe_phead;
+   struct list_head *xmitframe_phead;
struct xmit_frame *pxmitframe;
struct xmit_priv *pxmitpriv = >xmitpriv;
 
spin_lock_bh(>lock);
 
xmitframe_phead = get_list_head(>sleep_q);
-   xmitframe_plist = xmitframe_phead->next;
-
-   if (!list_empty(xmitframe_phead)) {
-   pxmitframe = container_of(xmitframe_plist,
- struct xmit_frame,
- list);
-
-   xmitframe_plist = xmitframe_plist->next;
-
+   pxmitframe = list_first_entry_or_null(xmitframe_phead,
+ struct xmit_frame,
+ list);
+   if (pxmitframe) {
list_del_init(>list);
 
psta->sleepq_len--;
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] staging: rtl8723au: fix static checker warning

2016-03-01 Thread Geliang Tang
Fix the following static checker warning:

 drivers/staging/rtl8723au/core/rtw_sta_mgt.c:365 rtw_get_stainfo23a()
 error: potential NULL dereference 'psta'.

Fixes: e280d71("staging: rtl8723au: use list_for_each_entry*()")
Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_sta_mgt.c 
b/drivers/staging/rtl8723au/core/rtw_sta_mgt.c
index 22d857b..5f85ee0 100644
--- a/drivers/staging/rtl8723au/core/rtw_sta_mgt.c
+++ b/drivers/staging/rtl8723au/core/rtw_sta_mgt.c
@@ -346,7 +346,7 @@ void rtw_free_all_stainfo23a(struct rtw_adapter *padapter)
 struct sta_info *rtw_get_stainfo23a(struct sta_priv *pstapriv, const u8 
*hwaddr)
 {
struct list_head *phead;
-   struct sta_info *psta = NULL;
+   struct sta_info *pos, *psta = NULL;
u32 index;
const u8 *addr;
 
@@ -362,7 +362,9 @@ struct sta_info *rtw_get_stainfo23a(struct sta_priv 
*pstapriv, const u8 *hwaddr)
 
spin_lock_bh(>sta_hash_lock);
phead = >sta_hash[index];
-   list_for_each_entry(psta, phead, hash_list) {
+   list_for_each_entry(pos, phead, hash_list) {
+   psta = pos;
+
/*  if found the matched address */
if (ether_addr_equal(psta->hwaddr, addr))
break;
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] staging: rtl8723au: use list_first_entry*

2016-02-22 Thread Geliang Tang
Use list_first_entry*() instead of container_of() to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/staging/rtl8723au/core/rtw_recv.c | 49 +--
 drivers/staging/rtl8723au/core/rtw_xmit.c | 26 +---
 2 files changed, 22 insertions(+), 53 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c 
b/drivers/staging/rtl8723au/core/rtw_recv.c
index 0a7741c..b095d09 100644
--- a/drivers/staging/rtl8723au/core/rtw_recv.c
+++ b/drivers/staging/rtl8723au/core/rtw_recv.c
@@ -104,21 +104,14 @@ void _rtw_free_recv_priv23a(struct recv_priv *precvpriv)
 struct recv_frame *rtw_alloc_recvframe23a(struct rtw_queue *pfree_recv_queue)
 {
struct recv_frame *pframe;
-   struct list_head *plist, *phead;
struct rtw_adapter *padapter;
struct recv_priv *precvpriv;
 
spin_lock_bh(_recv_queue->lock);
 
-   if (list_empty(_recv_queue->queue))
-   pframe = NULL;
-   else {
-   phead = get_list_head(pfree_recv_queue);
-
-   plist = phead->next;
-
-   pframe = container_of(plist, struct recv_frame, list);
-
+   pframe = list_first_entry_or_null(_recv_queue->queue,
+ struct recv_frame, list);
+   if (pframe) {
list_del_init(>list);
padapter = pframe->adapter;
if (padapter) {
@@ -243,25 +236,17 @@ int rtw_enqueue_recvbuf23a(struct recv_buf *precvbuf, 
struct rtw_queue *queue)
return _SUCCESS;
 }
 
-struct recv_buf *rtw_dequeue_recvbuf23a (struct rtw_queue *queue)
+struct recv_buf *rtw_dequeue_recvbuf23a(struct rtw_queue *queue)
 {
unsigned long irqL;
struct recv_buf *precvbuf;
-   struct list_head *plist, *phead;
 
spin_lock_irqsave(>lock, irqL);
 
-   if (list_empty(>queue)) {
-   precvbuf = NULL;
-   } else {
-   phead = get_list_head(queue);
-
-   plist = phead->next;
-
-   precvbuf = container_of(plist, struct recv_buf, list);
-
+   precvbuf = list_first_entry_or_null(>queue,
+   struct recv_buf, list);
+   if (precvbuf)
list_del_init(>list);
-   }
 
spin_unlock_irqrestore(>lock, irqL);
 
@@ -1079,22 +1064,17 @@ static int validate_recv_ctrl_frame(struct rtw_adapter 
*padapter,
 
if ((psta->state & WIFI_SLEEP_STATE) &&
(pstapriv->sta_dz_bitmap & CHKBIT(psta->aid))) {
-   struct list_head *xmitframe_plist, *xmitframe_phead;
+   struct list_head *xmitframe_phead;
struct xmit_frame *pxmitframe;
struct xmit_priv *pxmitpriv = >xmitpriv;
 
spin_lock_bh(>lock);
 
xmitframe_phead = get_list_head(>sleep_q);
-   xmitframe_plist = xmitframe_phead->next;
-
-   if (!list_empty(xmitframe_phead)) {
-   pxmitframe = container_of(xmitframe_plist,
- struct xmit_frame,
- list);
-
-   xmitframe_plist = xmitframe_plist->next;
-
+   pxmitframe = list_first_entry_or_null(xmitframe_phead,
+ struct xmit_frame,
+ list);
+   if (pxmitframe) {
list_del_init(>list);
 
psta->sleepq_len--;
@@ -1542,7 +1522,7 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
 struct recv_frame *recvframe_defrag(struct rtw_adapter *adapter,
struct rtw_queue *defrag_q)
 {
-   struct list_head *plist, *phead;
+   struct list_head *phead;
u8 wlanhdr_offset;
u8 curfragnum;
struct recv_frame *pnfhdr, *ptmp;
@@ -1554,8 +1534,7 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
pfree_recv_queue = >recvpriv.free_recv_queue;
 
phead = get_list_head(defrag_q);
-   plist = phead->next;
-   prframe = container_of(plist, struct recv_frame, list);
+   prframe = list_first_entry(phead, struct recv_frame, list);
list_del_init(>list);
skb = prframe->pkt;
 
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 xmi

[PATCH v5 1/3] staging: rtl8723au: use list_for_each_entry*()

2016-02-18 Thread Geliang Tang
Use list_for_each_entry*() instead of list_for_each*() to simplify
the code.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/staging/rtl8723au/core/rtw_ap.c   | 59 
 drivers/staging/rtl8723au/core/rtw_mlme.c | 28 --
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 10 ++--
 drivers/staging/rtl8723au/core/rtw_recv.c | 22 
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  | 25 -
 drivers/staging/rtl8723au/core/rtw_xmit.c | 66 ++-
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 14 +++--
 drivers/staging/rtl8723au/os_dep/usb_ops_linux.c  |  9 ++--
 8 files changed, 95 insertions(+), 138 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c 
b/drivers/staging/rtl8723au/core/rtw_ap.c
index 1aa9b26..4ab3631 100644
--- a/drivers/staging/rtl8723au/core/rtw_ap.c
+++ b/drivers/staging/rtl8723au/core/rtw_ap.c
@@ -173,9 +173,9 @@ static u8 chk_sta_is_alive(struct sta_info *psta)
 
 void   expire_timeout_chk23a(struct rtw_adapter *padapter)
 {
-   struct list_head *phead, *plist, *ptmp;
+   struct list_head *phead;
u8 updated = 0;
-   struct sta_info *psta;
+   struct sta_info *psta, *ptmp;
struct sta_priv *pstapriv = >stapriv;
u8 chk_alive_num = 0;
struct sta_info *chk_alive_list[NUM_STA];
@@ -186,8 +186,7 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
phead = >auth_list;
 
/* check auth_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, auth_list);
+   list_for_each_entry_safe(psta, ptmp, phead, auth_list) {
 
if (psta->expire_to > 0) {
psta->expire_to--;
@@ -216,8 +215,7 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
phead = >asoc_list;
 
/* check asoc_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, asoc_list);
+   list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
 
if (chk_sta_is_alive(psta) || !psta->expire_to) {
psta->expire_to = pstapriv->expire_to;
@@ -1059,7 +1057,7 @@ void rtw_set_macaddr_acl23a(struct rtw_adapter *padapter, 
int mode)
 
 int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 *addr)
 {
-   struct list_head *plist, *phead;
+   struct list_head *phead;
u8 added = false;
int i, ret = 0;
struct rtw_wlan_acl_node *paclnode;
@@ -1076,8 +1074,7 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
 
phead = get_list_head(pacl_node_q);
 
-   list_for_each(plist, phead) {
-   paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
+   list_for_each_entry(paclnode, phead, list) {
 
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid == true) {
@@ -1121,8 +1118,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
 
 int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, u8 *addr)
 {
-   struct list_head *plist, *phead, *ptmp;
-   struct rtw_wlan_acl_node *paclnode;
+   struct list_head *phead;
+   struct rtw_wlan_acl_node *paclnode, *ptmp;
struct sta_priv *pstapriv = >stapriv;
struct wlan_acl_pool *pacl_list = >acl_list;
struct rtw_queue *pacl_node_q = _list->acl_node_q;
@@ -1133,8 +1130,7 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
 
phead = get_list_head(pacl_node_q);
 
-   list_for_each_safe(plist, ptmp, phead) {
-   paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
+   list_for_each_entry_safe(paclnode, ptmp, phead, list) {
 
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid) {
@@ -1354,19 +1350,16 @@ void associated_clients_update23a(struct rtw_adapter 
*padapter, u8 updated)
 {
/* update associated stations cap. */
if (updated == true) {
-   struct list_head *phead, *plist, *ptmp;
-   struct sta_info *psta;
+   struct list_head *phead;
+   struct sta_info *psta, *ptmp;
struct sta_priv *pstapriv = >stapriv;
 
spin_lock_bh(>asoc_list_lock);
 
phead = >asoc_list;
 
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, asoc_list);
-
+   list_for_each_entry_safe(psta, ptmp, phead, asoc_list)
VCS_update23a(padapter, psta);
-   }
 
spin_unlock_bh(>asoc_list_lock);
}
@@ -1627,7 +1620,7 @@ u8 ap_free_sta23a(struct rtw_adapter *padapter, struct 
sta_info *psta, bool acti
 
 int rtw_ap_inform_c

[PATCH v5 3/3] staging: rtl8723au: whitespace and blank line cleaning

2016-02-18 Thread Geliang Tang
This patch cleans whitespaces and blank lines involved with
previous two patchs in this patch set.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/staging/rtl8723au/core/rtw_ap.c   | 33 +--
 drivers/staging/rtl8723au/core/rtw_mlme.c | 10 ---
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c |  3 +--
 drivers/staging/rtl8723au/core/rtw_recv.c | 15 +++
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  | 11 +---
 drivers/staging/rtl8723au/core/rtw_xmit.c | 26 --
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c |  8 --
 7 files changed, 12 insertions(+), 94 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c 
b/drivers/staging/rtl8723au/core/rtw_ap.c
index 4ab3631..ce4b589 100644
--- a/drivers/staging/rtl8723au/core/rtw_ap.c
+++ b/drivers/staging/rtl8723au/core/rtw_ap.c
@@ -171,7 +171,7 @@ static u8 chk_sta_is_alive(struct sta_info *psta)
return ret;
 }
 
-void   expire_timeout_chk23a(struct rtw_adapter *padapter)
+void expire_timeout_chk23a(struct rtw_adapter *padapter)
 {
struct list_head *phead;
u8 updated = 0;
@@ -182,12 +182,9 @@ void   expire_timeout_chk23a(struct rtw_adapter 
*padapter)
int i;
 
spin_lock_bh(>auth_list_lock);
-
phead = >auth_list;
-
/* check auth_queue */
list_for_each_entry_safe(psta, ptmp, phead, auth_list) {
-
if (psta->expire_to > 0) {
psta->expire_to--;
if (psta->expire_to == 0) {
@@ -205,18 +202,13 @@ void  expire_timeout_chk23a(struct rtw_adapter 
*padapter)
spin_lock_bh(>auth_list_lock);
}
}
-
}
-
spin_unlock_bh(>auth_list_lock);
 
spin_lock_bh(>asoc_list_lock);
-
phead = >asoc_list;
-
/* check asoc_queue */
list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
-
if (chk_sta_is_alive(psta) || !psta->expire_to) {
psta->expire_to = pstapriv->expire_to;
psta->keep_alive_trycnt = 0;
@@ -281,7 +273,6 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
}
}
}
-
spin_unlock_bh(>asoc_list_lock);
 
if (chk_alive_num) {
@@ -1071,11 +1062,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
return -1;
 
spin_lock_bh(_node_q->lock);
-
phead = get_list_head(pacl_node_q);
-
list_for_each_entry(paclnode, phead, list) {
-
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid == true) {
added = true;
@@ -1084,7 +1072,6 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
}
}
}
-
spin_unlock_bh(_node_q->lock);
 
if (added)
@@ -1127,11 +1114,8 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
DBG_8723A("%s(acl_num =%d) = %pM\n", __func__, pacl_list->num, addr);
 
spin_lock_bh(_node_q->lock);
-
phead = get_list_head(pacl_node_q);
-
list_for_each_entry_safe(paclnode, ptmp, phead, list) {
-
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid) {
paclnode->valid = false;
@@ -1142,7 +1126,6 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
}
}
}
-
spin_unlock_bh(_node_q->lock);
 
DBG_8723A("%s, acl_num =%d\n", __func__, pacl_list->num);
@@ -1355,12 +1338,9 @@ void associated_clients_update23a(struct rtw_adapter 
*padapter, u8 updated)
struct sta_priv *pstapriv = >stapriv;
 
spin_lock_bh(>asoc_list_lock);
-
phead = >asoc_list;
-
list_for_each_entry_safe(psta, ptmp, phead, asoc_list)
VCS_update23a(padapter, psta);
-
spin_unlock_bh(>asoc_list_lock);
}
 }
@@ -1635,9 +1615,7 @@ int rtw_ap_inform_ch_switch23a(struct rtw_adapter 
*padapter, u8 new_ch, u8 ch_of
 
spin_lock_bh(>asoc_list_lock);
phead = >asoc_list;
-
list_for_each_entry(psta, phead, asoc_list) {
-
issue_action_spct_ch_switch23a(padapter, psta->hwaddr, new_ch, 
ch_offset);
psta->expire_to = ((pstapriv->expire_to * 2) > 5) ? 5 : 
(pstapriv->expire_to * 2);
}
@@ -1667,9 +1645,7 @@ int rtw_sta_flush23a(struct rtw_adapter *padapter)
 
spin_lock_bh(>asoc_list_lock);
phead = >asoc_list;
-
list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
-
/*

[PATCH v5 0/3] staging: rtl8723au: use list_for_each_entry*() and cleaning

2016-02-18 Thread Geliang Tang
On Wed, Feb 17, 2016 at 12:28:33PM -0500, Jes Sorensen wrote:
> kbuild test robot <l...@intel.com> writes:
> > Hi Geliang,
> >
> > [auto build test ERROR on staging/staging-testing]
> > [also build test ERROR on v4.5-rc4 next-20160217]
> > [if your patch is applied to the wrong git tree, please drop us a note to 
> > help improving the system]
> >
> > url:    
> > https://github.com/0day-ci/linux/commits/Geliang-Tang/staging-rtl8723au-use-list_for_each_entry/20160217-220638
> > config: i386-randconfig-s1-201607 (attached as .config)
> > reproduce:
> > # save the attached .config to linux build tree
> > make ARCH=i386 
> >
> > Note: the 
> > linux-review/Geliang-Tang/staging-rtl8723au-use-list_for_each_entry/20160217-220638
> >  HEAD 495811a52aba181af76c3baf57da3d81a79c2fe8 builds fine.
> >   It only hurts bisectibility.
> >
> > All errors (new ones prefixed by >>):
> >
> >drivers/staging/rtl8723au/core/rtw_recv.c: In function 
> > 'rtw_free_recvframe23a_queue':
> >>> drivers/staging/rtl8723au/core/rtw_recv.c:203:2: error: 'plist' 
> >>> undeclared (first use in this function)
> >  plist = phead->next;
> >  ^
> 
> This doesn't work, you cannot break interim builds. Your patch 2 needs
> to go before patch 1, and you must always check that they compile for
> each patch you apply.
> 
> NACK

Sorry for the trouble caused. I updated my patchs to fix this problem.

- Geliang

This patch set uses list_for_each_entry*() instead of
list_for_each*(), removes useless codes, and cleans
whitespaces and blank lines.

Changes in v5:
 - fix build error.
Changes in v4:
 - revise the patchs as Jes suggested.
Changes in v3:
 - split it into three patches.
Changes in v2:
 - drop the coding style fixing in v1.

Geliang Tang (3):
  staging: rtl8723au: use list_for_each_entry*()
  staging: rtl8723au: core: rtw_recv: remove useless codes
  staging: rtl8723au: whitespace and blank line cleaning

 drivers/staging/rtl8723au/core/rtw_ap.c   | 92 ++-
 drivers/staging/rtl8723au/core/rtw_mlme.c | 38 +++---
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 13 ++--
 drivers/staging/rtl8723au/core/rtw_recv.c | 42 ---
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  | 36 +++--
 drivers/staging/rtl8723au/core/rtw_xmit.c | 90 --
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 22 ++
 drivers/staging/rtl8723au/os_dep/usb_ops_linux.c  |  9 +--
 8 files changed, 106 insertions(+), 236 deletions(-)

-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v5 2/3] staging: rtl8723au: core: rtw_recv: remove useless codes

2016-02-18 Thread Geliang Tang
There are some useless codes in rtw_free_recvframe23a_queue() and
recvframe_defrag(), so remove them.

Signed-off-by: Geliang Tang <geliangt...@163.com>
Acked-by: Jes Sorensen <jes.soren...@redhat.com>
---
 drivers/staging/rtl8723au/core/rtw_recv.c | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c 
b/drivers/staging/rtl8723au/core/rtw_recv.c
index 0b4593c..d1e0f65 100644
--- a/drivers/staging/rtl8723au/core/rtw_recv.c
+++ b/drivers/staging/rtl8723au/core/rtw_recv.c
@@ -195,12 +195,11 @@ using spinlock to protect
 static void rtw_free_recvframe23a_queue(struct rtw_queue *pframequeue)
 {
struct recv_frame *hdr, *ptmp;
-   struct list_head *plist, *phead;
+   struct list_head *phead;
 
spin_lock(>lock);
 
phead = get_list_head(pframequeue);
-   plist = phead->next;
 
list_for_each_entry_safe(hdr, ptmp, phead, list)
rtw_free_recvframe23a(hdr);
@@ -1547,7 +1546,7 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
struct rtw_queue *defrag_q)
 {
struct list_head *plist, *phead;
-   u8  *data, wlanhdr_offset;
+   u8  wlanhdr_offset;
u8  curfragnum;
struct recv_frame *pnfhdr, *ptmp;
struct recv_frame *prframe, *pnextrframe;
@@ -1576,10 +1575,6 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
 
curfragnum++;
 
-   phead = get_list_head(defrag_q);
-
-   data = prframe->pkt->data;
-
list_for_each_entry_safe(pnfhdr, ptmp, phead, list) {
pnextrframe = (struct recv_frame *)pnfhdr;
/* check the fragment sequence  (2nd ~n fragment frame) */
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 3/3] staging: rtl8723au: whitespace and blank line cleaning

2016-02-17 Thread Geliang Tang
This patch cleans whitespaces and blank lines involved with
previous two patchs in this patch set.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/staging/rtl8723au/core/rtw_ap.c   | 33 +--
 drivers/staging/rtl8723au/core/rtw_mlme.c | 10 ---
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c |  3 +--
 drivers/staging/rtl8723au/core/rtw_recv.c | 15 +++
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  | 11 +---
 drivers/staging/rtl8723au/core/rtw_xmit.c | 26 --
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c |  8 --
 7 files changed, 12 insertions(+), 94 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c 
b/drivers/staging/rtl8723au/core/rtw_ap.c
index 4ab3631..ce4b589 100644
--- a/drivers/staging/rtl8723au/core/rtw_ap.c
+++ b/drivers/staging/rtl8723au/core/rtw_ap.c
@@ -171,7 +171,7 @@ static u8 chk_sta_is_alive(struct sta_info *psta)
return ret;
 }
 
-void   expire_timeout_chk23a(struct rtw_adapter *padapter)
+void expire_timeout_chk23a(struct rtw_adapter *padapter)
 {
struct list_head *phead;
u8 updated = 0;
@@ -182,12 +182,9 @@ void   expire_timeout_chk23a(struct rtw_adapter 
*padapter)
int i;
 
spin_lock_bh(>auth_list_lock);
-
phead = >auth_list;
-
/* check auth_queue */
list_for_each_entry_safe(psta, ptmp, phead, auth_list) {
-
if (psta->expire_to > 0) {
psta->expire_to--;
if (psta->expire_to == 0) {
@@ -205,18 +202,13 @@ void  expire_timeout_chk23a(struct rtw_adapter 
*padapter)
spin_lock_bh(>auth_list_lock);
}
}
-
}
-
spin_unlock_bh(>auth_list_lock);
 
spin_lock_bh(>asoc_list_lock);
-
phead = >asoc_list;
-
/* check asoc_queue */
list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
-
if (chk_sta_is_alive(psta) || !psta->expire_to) {
psta->expire_to = pstapriv->expire_to;
psta->keep_alive_trycnt = 0;
@@ -281,7 +273,6 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
}
}
}
-
spin_unlock_bh(>asoc_list_lock);
 
if (chk_alive_num) {
@@ -1071,11 +1062,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
return -1;
 
spin_lock_bh(_node_q->lock);
-
phead = get_list_head(pacl_node_q);
-
list_for_each_entry(paclnode, phead, list) {
-
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid == true) {
added = true;
@@ -1084,7 +1072,6 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
}
}
}
-
spin_unlock_bh(_node_q->lock);
 
if (added)
@@ -1127,11 +1114,8 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
DBG_8723A("%s(acl_num =%d) = %pM\n", __func__, pacl_list->num, addr);
 
spin_lock_bh(_node_q->lock);
-
phead = get_list_head(pacl_node_q);
-
list_for_each_entry_safe(paclnode, ptmp, phead, list) {
-
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid) {
paclnode->valid = false;
@@ -1142,7 +1126,6 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
}
}
}
-
spin_unlock_bh(_node_q->lock);
 
DBG_8723A("%s, acl_num =%d\n", __func__, pacl_list->num);
@@ -1355,12 +1338,9 @@ void associated_clients_update23a(struct rtw_adapter 
*padapter, u8 updated)
struct sta_priv *pstapriv = >stapriv;
 
spin_lock_bh(>asoc_list_lock);
-
phead = >asoc_list;
-
list_for_each_entry_safe(psta, ptmp, phead, asoc_list)
VCS_update23a(padapter, psta);
-
spin_unlock_bh(>asoc_list_lock);
}
 }
@@ -1635,9 +1615,7 @@ int rtw_ap_inform_ch_switch23a(struct rtw_adapter 
*padapter, u8 new_ch, u8 ch_of
 
spin_lock_bh(>asoc_list_lock);
phead = >asoc_list;
-
list_for_each_entry(psta, phead, asoc_list) {
-
issue_action_spct_ch_switch23a(padapter, psta->hwaddr, new_ch, 
ch_offset);
psta->expire_to = ((pstapriv->expire_to * 2) > 5) ? 5 : 
(pstapriv->expire_to * 2);
}
@@ -1667,9 +1645,7 @@ int rtw_sta_flush23a(struct rtw_adapter *padapter)
 
spin_lock_bh(>asoc_list_lock);
phead = >asoc_list;
-
list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
-
/*

[PATCH v4 0/3] staging: rtl8723au: use list_for_each_entry*() and cleaning

2016-02-17 Thread Geliang Tang
This patch set uses list_for_each_entry*() instead of
list_for_each*(), removes useless codes, and cleans
whitespaces and blank lines.

Changes in v4:
 - revise the patchs as Jes suggested.
Changes in v3:
 - split it into three patches.
Changes in v2:
 - drop the coding style fixing in v1.

Geliang Tang (3):
  staging: rtl8723au: use list_for_each_entry*()
  staging: rtl8723au: core: rtw_recv: remove useless codes
  staging: rtl8723au: whitespace and blank line cleaning

 drivers/staging/rtl8723au/core/rtw_ap.c   | 92 ++-
 drivers/staging/rtl8723au/core/rtw_mlme.c | 38 +++---
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 13 ++--
 drivers/staging/rtl8723au/core/rtw_recv.c | 42 ---
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  | 36 +++--
 drivers/staging/rtl8723au/core/rtw_xmit.c | 90 --
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 22 ++
 drivers/staging/rtl8723au/os_dep/usb_ops_linux.c  |  9 +--
 8 files changed, 106 insertions(+), 236 deletions(-)

-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 2/3] staging: rtl8723au: core: rtw_recv: remove useless codes

2016-02-17 Thread Geliang Tang
There are some useless codes in rtw_free_recvframe23a_queue() and
recvframe_defrag(), so remove them.

Signed-off-by: Geliang Tang <geliangt...@163.com>
Acked-by: Jes Sorensen <jes.soren...@redhat.com>
---
 drivers/staging/rtl8723au/core/rtw_recv.c | 7 +--
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c 
b/drivers/staging/rtl8723au/core/rtw_recv.c
index bd93e76..d1e0f65 100644
--- a/drivers/staging/rtl8723au/core/rtw_recv.c
+++ b/drivers/staging/rtl8723au/core/rtw_recv.c
@@ -200,7 +200,6 @@ static void rtw_free_recvframe23a_queue(struct rtw_queue 
*pframequeue)
spin_lock(>lock);
 
phead = get_list_head(pframequeue);
-   plist = phead->next;
 
list_for_each_entry_safe(hdr, ptmp, phead, list)
rtw_free_recvframe23a(hdr);
@@ -1547,7 +1546,7 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
struct rtw_queue *defrag_q)
 {
struct list_head *plist, *phead;
-   u8  *data, wlanhdr_offset;
+   u8  wlanhdr_offset;
u8  curfragnum;
struct recv_frame *pnfhdr, *ptmp;
struct recv_frame *prframe, *pnextrframe;
@@ -1576,10 +1575,6 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
 
curfragnum++;
 
-   phead = get_list_head(defrag_q);
-
-   data = prframe->pkt->data;
-
list_for_each_entry_safe(pnfhdr, ptmp, phead, list) {
pnextrframe = (struct recv_frame *)pnfhdr;
/* check the fragment sequence  (2nd ~n fragment frame) */
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 1/3] staging: rtl8723au: use list_for_each_entry*()

2016-02-17 Thread Geliang Tang
Use list_for_each_entry*() instead of list_for_each*() to simplify
the code.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/staging/rtl8723au/core/rtw_ap.c   | 59 
 drivers/staging/rtl8723au/core/rtw_mlme.c | 28 --
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 10 ++--
 drivers/staging/rtl8723au/core/rtw_recv.c | 22 
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  | 25 -
 drivers/staging/rtl8723au/core/rtw_xmit.c | 66 ++-
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 14 +++--
 drivers/staging/rtl8723au/os_dep/usb_ops_linux.c  |  9 ++--
 8 files changed, 95 insertions(+), 138 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c 
b/drivers/staging/rtl8723au/core/rtw_ap.c
index 1aa9b26..4ab3631 100644
--- a/drivers/staging/rtl8723au/core/rtw_ap.c
+++ b/drivers/staging/rtl8723au/core/rtw_ap.c
@@ -173,9 +173,9 @@ static u8 chk_sta_is_alive(struct sta_info *psta)
 
 void   expire_timeout_chk23a(struct rtw_adapter *padapter)
 {
-   struct list_head *phead, *plist, *ptmp;
+   struct list_head *phead;
u8 updated = 0;
-   struct sta_info *psta;
+   struct sta_info *psta, *ptmp;
struct sta_priv *pstapriv = >stapriv;
u8 chk_alive_num = 0;
struct sta_info *chk_alive_list[NUM_STA];
@@ -186,8 +186,7 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
phead = >auth_list;
 
/* check auth_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, auth_list);
+   list_for_each_entry_safe(psta, ptmp, phead, auth_list) {
 
if (psta->expire_to > 0) {
psta->expire_to--;
@@ -216,8 +215,7 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
phead = >asoc_list;
 
/* check asoc_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, asoc_list);
+   list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
 
if (chk_sta_is_alive(psta) || !psta->expire_to) {
psta->expire_to = pstapriv->expire_to;
@@ -1059,7 +1057,7 @@ void rtw_set_macaddr_acl23a(struct rtw_adapter *padapter, 
int mode)
 
 int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 *addr)
 {
-   struct list_head *plist, *phead;
+   struct list_head *phead;
u8 added = false;
int i, ret = 0;
struct rtw_wlan_acl_node *paclnode;
@@ -1076,8 +1074,7 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
 
phead = get_list_head(pacl_node_q);
 
-   list_for_each(plist, phead) {
-   paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
+   list_for_each_entry(paclnode, phead, list) {
 
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid == true) {
@@ -1121,8 +1118,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
 
 int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, u8 *addr)
 {
-   struct list_head *plist, *phead, *ptmp;
-   struct rtw_wlan_acl_node *paclnode;
+   struct list_head *phead;
+   struct rtw_wlan_acl_node *paclnode, *ptmp;
struct sta_priv *pstapriv = >stapriv;
struct wlan_acl_pool *pacl_list = >acl_list;
struct rtw_queue *pacl_node_q = _list->acl_node_q;
@@ -1133,8 +1130,7 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
 
phead = get_list_head(pacl_node_q);
 
-   list_for_each_safe(plist, ptmp, phead) {
-   paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
+   list_for_each_entry_safe(paclnode, ptmp, phead, list) {
 
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid) {
@@ -1354,19 +1350,16 @@ void associated_clients_update23a(struct rtw_adapter 
*padapter, u8 updated)
 {
/* update associated stations cap. */
if (updated == true) {
-   struct list_head *phead, *plist, *ptmp;
-   struct sta_info *psta;
+   struct list_head *phead;
+   struct sta_info *psta, *ptmp;
struct sta_priv *pstapriv = >stapriv;
 
spin_lock_bh(>asoc_list_lock);
 
phead = >asoc_list;
 
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, asoc_list);
-
+   list_for_each_entry_safe(psta, ptmp, phead, asoc_list)
VCS_update23a(padapter, psta);
-   }
 
spin_unlock_bh(>asoc_list_lock);
}
@@ -1627,7 +1620,7 @@ u8 ap_free_sta23a(struct rtw_adapter *padapter, struct 
sta_info *psta, bool acti
 
 int rtw_ap_inform_c

[PATCH v3 1/3] staging: rtl8723au: use list_for_each_entry*()

2016-02-06 Thread Geliang Tang
Use list_for_each_entry*() instead of list_for_each*() to simplify
the code.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
Changes in v3:
 - split it into three patches.
Changes in v2:
 - drop the coding style fixing in v1.
---
 drivers/staging/rtl8723au/core/rtw_ap.c   | 55 ---
 drivers/staging/rtl8723au/core/rtw_mlme.c | 26 -
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 10 ++--
 drivers/staging/rtl8723au/core/rtw_recv.c | 22 
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  | 25 -
 drivers/staging/rtl8723au/core/rtw_xmit.c | 64 ++-
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 14 +++--
 drivers/staging/rtl8723au/os_dep/usb_ops_linux.c  |  9 ++--
 8 files changed, 96 insertions(+), 129 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c 
b/drivers/staging/rtl8723au/core/rtw_ap.c
index 1aa9b26..4bcd617 100644
--- a/drivers/staging/rtl8723au/core/rtw_ap.c
+++ b/drivers/staging/rtl8723au/core/rtw_ap.c
@@ -173,9 +173,9 @@ static u8 chk_sta_is_alive(struct sta_info *psta)
 
 void   expire_timeout_chk23a(struct rtw_adapter *padapter)
 {
-   struct list_head *phead, *plist, *ptmp;
+   struct list_head *phead;
u8 updated = 0;
-   struct sta_info *psta;
+   struct sta_info *psta, *ptmp;
struct sta_priv *pstapriv = >stapriv;
u8 chk_alive_num = 0;
struct sta_info *chk_alive_list[NUM_STA];
@@ -186,8 +186,7 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
phead = >auth_list;
 
/* check auth_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, auth_list);
+   list_for_each_entry_safe(psta, ptmp, phead, auth_list) {
 
if (psta->expire_to > 0) {
psta->expire_to--;
@@ -216,8 +215,7 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
phead = >asoc_list;
 
/* check asoc_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, asoc_list);
+   list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
 
if (chk_sta_is_alive(psta) || !psta->expire_to) {
psta->expire_to = pstapriv->expire_to;
@@ -1059,7 +1057,7 @@ void rtw_set_macaddr_acl23a(struct rtw_adapter *padapter, 
int mode)
 
 int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 *addr)
 {
-   struct list_head *plist, *phead;
+   struct list_head *phead;
u8 added = false;
int i, ret = 0;
struct rtw_wlan_acl_node *paclnode;
@@ -1076,8 +1074,7 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
 
phead = get_list_head(pacl_node_q);
 
-   list_for_each(plist, phead) {
-   paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
+   list_for_each_entry(paclnode, phead, list) {
 
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid == true) {
@@ -1121,8 +1118,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
 
 int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, u8 *addr)
 {
-   struct list_head *plist, *phead, *ptmp;
-   struct rtw_wlan_acl_node *paclnode;
+   struct list_head *phead;
+   struct rtw_wlan_acl_node *paclnode, *ptmp;
struct sta_priv *pstapriv = >stapriv;
struct wlan_acl_pool *pacl_list = >acl_list;
struct rtw_queue *pacl_node_q = _list->acl_node_q;
@@ -1133,8 +1130,7 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
 
phead = get_list_head(pacl_node_q);
 
-   list_for_each_safe(plist, ptmp, phead) {
-   paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
+   list_for_each_entry_safe(paclnode, ptmp, phead, list) {
 
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid) {
@@ -1354,16 +1350,15 @@ void associated_clients_update23a(struct rtw_adapter 
*padapter, u8 updated)
 {
/* update associated stations cap. */
if (updated == true) {
-   struct list_head *phead, *plist, *ptmp;
-   struct sta_info *psta;
+   struct list_head *phead;
+   struct sta_info *psta, *ptmp;
struct sta_priv *pstapriv = >stapriv;
 
spin_lock_bh(>asoc_list_lock);
 
phead = >asoc_list;
 
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, asoc_list);
+   list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
 
VCS_update23a(padapter, psta);
}
@@ -1627,7 +1622,7 @@ u8 ap_free_sta23a(struct rtw_adapter *padapter, struct 
sta_info *psta,

[PATCH v3 2/3] staging: rtl8723au: core: rtw_recv: remove useless codes

2016-02-06 Thread Geliang Tang
There are some useless codes in rtw_free_recvframe23a_queue() and
recvframe_defrag(), so remove them.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
Changes in v3:
 - split it into three patches.
Changes in v2:
 - drop the coding style fixing in v1.
---
 drivers/staging/rtl8723au/core/rtw_recv.c | 7 +--
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c 
b/drivers/staging/rtl8723au/core/rtw_recv.c
index 18b7d03..b36bc6b 100644
--- a/drivers/staging/rtl8723au/core/rtw_recv.c
+++ b/drivers/staging/rtl8723au/core/rtw_recv.c
@@ -201,7 +201,6 @@ static void rtw_free_recvframe23a_queue(struct rtw_queue 
*pframequeue)
spin_lock(>lock);
 
phead = get_list_head(pframequeue);
-   plist = phead->next;
 
list_for_each_entry_safe(hdr, ptmp, phead, list) {
rtw_free_recvframe23a(hdr);
@@ -1567,7 +1566,7 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
struct rtw_queue *defrag_q)
 {
struct list_head *plist, *phead;
-   u8  *data, wlanhdr_offset;
+   u8  wlanhdr_offset;
u8  curfragnum;
struct recv_frame *pnfhdr, *ptmp;
struct recv_frame *prframe, *pnextrframe;
@@ -1596,10 +1595,6 @@ struct recv_frame *recvframe_defrag(struct rtw_adapter 
*adapter,
 
curfragnum++;
 
-   phead = get_list_head(defrag_q);
-
-   data = prframe->pkt->data;
-
list_for_each_entry_safe(pnfhdr, ptmp, phead, list) {
pnextrframe = (struct recv_frame *)pnfhdr;
/* check the fragment sequence  (2nd ~n fragment frame) */
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3 3/3] staging: rtl8723au: whitespace and blank line cleaning

2016-02-06 Thread Geliang Tang
This patch cleans whitespaces and blank lines surrounding
list_for_each_entry*().

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
Changes in v3:
 - split it into three patches.
Changes in v2:
 - drop the coding style fixing in v1.
---
 drivers/staging/rtl8723au/core/rtw_ap.c   | 41 ++-
 drivers/staging/rtl8723au/core/rtw_mlme.c | 14 +---
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c |  3 +-
 drivers/staging/rtl8723au/core/rtw_recv.c | 18 +++---
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  | 11 +-
 drivers/staging/rtl8723au/core/rtw_xmit.c | 30 -
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c |  8 -
 7 files changed, 17 insertions(+), 108 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c 
b/drivers/staging/rtl8723au/core/rtw_ap.c
index 4bcd617..ce4b589 100644
--- a/drivers/staging/rtl8723au/core/rtw_ap.c
+++ b/drivers/staging/rtl8723au/core/rtw_ap.c
@@ -171,7 +171,7 @@ static u8 chk_sta_is_alive(struct sta_info *psta)
return ret;
 }
 
-void   expire_timeout_chk23a(struct rtw_adapter *padapter)
+void expire_timeout_chk23a(struct rtw_adapter *padapter)
 {
struct list_head *phead;
u8 updated = 0;
@@ -182,12 +182,9 @@ void   expire_timeout_chk23a(struct rtw_adapter 
*padapter)
int i;
 
spin_lock_bh(>auth_list_lock);
-
phead = >auth_list;
-
/* check auth_queue */
list_for_each_entry_safe(psta, ptmp, phead, auth_list) {
-
if (psta->expire_to > 0) {
psta->expire_to--;
if (psta->expire_to == 0) {
@@ -205,18 +202,13 @@ void  expire_timeout_chk23a(struct rtw_adapter 
*padapter)
spin_lock_bh(>auth_list_lock);
}
}
-
}
-
spin_unlock_bh(>auth_list_lock);
 
spin_lock_bh(>asoc_list_lock);
-
phead = >asoc_list;
-
/* check asoc_queue */
list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
-
if (chk_sta_is_alive(psta) || !psta->expire_to) {
psta->expire_to = pstapriv->expire_to;
psta->keep_alive_trycnt = 0;
@@ -281,7 +273,6 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
}
}
}
-
spin_unlock_bh(>asoc_list_lock);
 
if (chk_alive_num) {
@@ -1071,11 +1062,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
return -1;
 
spin_lock_bh(_node_q->lock);
-
phead = get_list_head(pacl_node_q);
-
list_for_each_entry(paclnode, phead, list) {
-
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid == true) {
added = true;
@@ -1084,7 +1072,6 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
}
}
}
-
spin_unlock_bh(_node_q->lock);
 
if (added)
@@ -1127,11 +1114,8 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
DBG_8723A("%s(acl_num =%d) = %pM\n", __func__, pacl_list->num, addr);
 
spin_lock_bh(_node_q->lock);
-
phead = get_list_head(pacl_node_q);
-
list_for_each_entry_safe(paclnode, ptmp, phead, list) {
-
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid) {
paclnode->valid = false;
@@ -1142,7 +1126,6 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
}
}
}
-
spin_unlock_bh(_node_q->lock);
 
DBG_8723A("%s, acl_num =%d\n", __func__, pacl_list->num);
@@ -1355,14 +1338,9 @@ void associated_clients_update23a(struct rtw_adapter 
*padapter, u8 updated)
struct sta_priv *pstapriv = >stapriv;
 
spin_lock_bh(>asoc_list_lock);
-
phead = >asoc_list;
-
-   list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
-
+   list_for_each_entry_safe(psta, ptmp, phead, asoc_list)
VCS_update23a(padapter, psta);
-   }
-
spin_unlock_bh(>asoc_list_lock);
}
 }
@@ -1637,9 +1615,7 @@ int rtw_ap_inform_ch_switch23a(struct rtw_adapter 
*padapter, u8 new_ch, u8 ch_of
 
spin_lock_bh(>asoc_list_lock);
phead = >asoc_list;
-
list_for_each_entry(psta, phead, asoc_list) {
-
issue_action_spct_ch_switch23a(padapter, psta->hwaddr, new_ch, 
ch_offset);
psta->expire_to = ((pstapriv->expire_to * 2) > 5) ? 5 : 
(pstapriv->expire_to * 2);
}
@@ -1669,9 +1645,7 @@ int rtw_sta_flush23a(struct rtw_ada

[PATCH v2] staging: rtl8723au: use list_for_each_entry*()

2016-02-01 Thread Geliang Tang
Use list_for_each_entry*() instead of list_for_each*() to simplify
the code.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
Changes in v2:
 - drop the coding style fixing in v1.
---
 drivers/staging/rtl8723au/core/rtw_ap.c   | 92 ++-
 drivers/staging/rtl8723au/core/rtw_mlme.c | 38 +++---
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 15 +---
 drivers/staging/rtl8723au/core/rtw_recv.c | 43 ---
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  | 36 +++--
 drivers/staging/rtl8723au/core/rtw_xmit.c | 90 --
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 22 ++
 drivers/staging/rtl8723au/os_dep/usb_ops_linux.c  |  9 +--
 8 files changed, 106 insertions(+), 239 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c 
b/drivers/staging/rtl8723au/core/rtw_ap.c
index 1aa9b26..ce4b589 100644
--- a/drivers/staging/rtl8723au/core/rtw_ap.c
+++ b/drivers/staging/rtl8723au/core/rtw_ap.c
@@ -171,24 +171,20 @@ static u8 chk_sta_is_alive(struct sta_info *psta)
return ret;
 }
 
-void   expire_timeout_chk23a(struct rtw_adapter *padapter)
+void expire_timeout_chk23a(struct rtw_adapter *padapter)
 {
-   struct list_head *phead, *plist, *ptmp;
+   struct list_head *phead;
u8 updated = 0;
-   struct sta_info *psta;
+   struct sta_info *psta, *ptmp;
struct sta_priv *pstapriv = >stapriv;
u8 chk_alive_num = 0;
struct sta_info *chk_alive_list[NUM_STA];
int i;
 
spin_lock_bh(>auth_list_lock);
-
phead = >auth_list;
-
/* check auth_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, auth_list);
-
+   list_for_each_entry_safe(psta, ptmp, phead, auth_list) {
if (psta->expire_to > 0) {
psta->expire_to--;
if (psta->expire_to == 0) {
@@ -206,19 +202,13 @@ void  expire_timeout_chk23a(struct rtw_adapter 
*padapter)
spin_lock_bh(>auth_list_lock);
}
}
-
}
-
spin_unlock_bh(>auth_list_lock);
 
spin_lock_bh(>asoc_list_lock);
-
phead = >asoc_list;
-
/* check asoc_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, asoc_list);
-
+   list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
if (chk_sta_is_alive(psta) || !psta->expire_to) {
psta->expire_to = pstapriv->expire_to;
psta->keep_alive_trycnt = 0;
@@ -283,7 +273,6 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
}
}
}
-
spin_unlock_bh(>asoc_list_lock);
 
if (chk_alive_num) {
@@ -1059,7 +1048,7 @@ void rtw_set_macaddr_acl23a(struct rtw_adapter *padapter, 
int mode)
 
 int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 *addr)
 {
-   struct list_head *plist, *phead;
+   struct list_head *phead;
u8 added = false;
int i, ret = 0;
struct rtw_wlan_acl_node *paclnode;
@@ -1073,12 +1062,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
return -1;
 
spin_lock_bh(_node_q->lock);
-
phead = get_list_head(pacl_node_q);
-
-   list_for_each(plist, phead) {
-   paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
-
+   list_for_each_entry(paclnode, phead, list) {
if (!memcmp(paclnode->addr, addr, ETH_ALEN)) {
if (paclnode->valid == true) {
added = true;
@@ -1087,7 +1072,6 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
}
}
}
-
spin_unlock_bh(_node_q->lock);
 
if (added)
@@ -1121,8 +1105,8 @@ int rtw_acl_add_sta23a(struct rtw_adapter *padapter, u8 
*addr)
 
 int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, u8 *addr)
 {
-   struct list_head *plist, *phead, *ptmp;
-   struct rtw_wlan_acl_node *paclnode;
+   struct list_head *phead;
+   struct rtw_wlan_acl_node *paclnode, *ptmp;
struct sta_priv *pstapriv = >stapriv;
struct wlan_acl_pool *pacl_list = >acl_list;
struct rtw_queue *pacl_node_q = _list->acl_node_q;
@@ -1130,12 +1114,8 @@ int rtw_acl_remove_sta23a(struct rtw_adapter *padapter, 
u8 *addr)
DBG_8723A("%s(acl_num =%d) = %pM\n", __func__, pacl_list->num, addr);
 
spin_lock_bh(_node_q->lock);
-
phead = get_list_head(pacl_node_q);
-
-   list_for_each_safe(plist, ptmp, phead) {
-   paclnode = container_of(plist, struct rtw_wlan_acl_node, list);
-
+   list_for_each_entry_saf

[PATCH] staging: rtl8723au: use list_for_each_entry*()

2016-01-31 Thread Geliang Tang
Use list_for_each_entry*() instead of list_for_each*() to simplify
the code. Fix coding style by the way.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/staging/rtl8723au/core/rtw_ap.c   | 166 --
 drivers/staging/rtl8723au/core/rtw_mlme.c |  38 ++---
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c |  13 +-
 drivers/staging/rtl8723au/core/rtw_recv.c |  43 ++
 drivers/staging/rtl8723au/core/rtw_sta_mgt.c  |  34 ++---
 drivers/staging/rtl8723au/core/rtw_xmit.c |  84 ---
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c |  22 +--
 drivers/staging/rtl8723au/os_dep/usb_ops_linux.c  |   9 +-
 8 files changed, 140 insertions(+), 269 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_ap.c 
b/drivers/staging/rtl8723au/core/rtw_ap.c
index 1aa9b26..66315f9 100644
--- a/drivers/staging/rtl8723au/core/rtw_ap.c
+++ b/drivers/staging/rtl8723au/core/rtw_ap.c
@@ -171,24 +171,20 @@ static u8 chk_sta_is_alive(struct sta_info *psta)
return ret;
 }
 
-void   expire_timeout_chk23a(struct rtw_adapter *padapter)
+void expire_timeout_chk23a(struct rtw_adapter *padapter)
 {
-   struct list_head *phead, *plist, *ptmp;
+   struct list_head *phead;
u8 updated = 0;
-   struct sta_info *psta;
+   struct sta_info *psta, *ptmp;
struct sta_priv *pstapriv = >stapriv;
u8 chk_alive_num = 0;
struct sta_info *chk_alive_list[NUM_STA];
int i;
 
spin_lock_bh(>auth_list_lock);
-
phead = >auth_list;
-
/* check auth_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, auth_list);
-
+   list_for_each_entry_safe(psta, ptmp, phead, auth_list) {
if (psta->expire_to > 0) {
psta->expire_to--;
if (psta->expire_to == 0) {
@@ -206,19 +202,13 @@ void  expire_timeout_chk23a(struct rtw_adapter 
*padapter)
spin_lock_bh(>auth_list_lock);
}
}
-
}
-
spin_unlock_bh(>auth_list_lock);
 
spin_lock_bh(>asoc_list_lock);
-
phead = >asoc_list;
-
/* check asoc_queue */
-   list_for_each_safe(plist, ptmp, phead) {
-   psta = container_of(plist, struct sta_info, asoc_list);
-
+   list_for_each_entry_safe(psta, ptmp, phead, asoc_list) {
if (chk_sta_is_alive(psta) || !psta->expire_to) {
psta->expire_to = pstapriv->expire_to;
psta->keep_alive_trycnt = 0;
@@ -283,7 +273,6 @@ voidexpire_timeout_chk23a(struct rtw_adapter 
*padapter)
}
}
}
-
spin_unlock_bh(>asoc_list_lock);
 
if (chk_alive_num) {
@@ -299,51 +288,55 @@ void  expire_timeout_chk23a(struct rtw_adapter 
*padapter)
SelectChannel23a(padapter, pmlmeext->cur_channel);
}
 
-   /* issue null data to check sta alive */
-   for (i = 0; i < chk_alive_num; i++) {
+   /* issue null data to check sta alive */
+   for (i = 0; i < chk_alive_num; i++) {
 
-   int ret = _FAIL;
+   int ret = _FAIL;
 
-   psta = chk_alive_list[i];
-   if (!(psta->state & _FW_LINKED))
-   continue;
+   psta = chk_alive_list[i];
+   if (!(psta->state & _FW_LINKED))
+   continue;
 
-   if (psta->state & WIFI_SLEEP_STATE)
-   ret = issue_nulldata23a(padapter, psta->hwaddr, 0, 1, 
50);
-   else
-   ret = issue_nulldata23a(padapter, psta->hwaddr, 0, 3, 
50);
+   if (psta->state & WIFI_SLEEP_STATE)
+   ret = issue_nulldata23a(padapter, psta->hwaddr,
+   0, 1, 50);
+   else
+   ret = issue_nulldata23a(padapter, psta->hwaddr,
+   0, 3, 50);
+
+   psta->keep_alive_trycnt++;
+   if (ret == _SUCCESS) {
+   DBG_8723A("asoc check, sta(%pM) is alive\n",
+ psta->hwaddr);
+   psta->expire_to = pstapriv->expire_to;
+   psta->keep_alive_trycnt = 0;
+   continue;
+   } else if (psta->keep_alive_trycnt <= 3) {
+   DBG_8723A("ack check for asoc expire, 
keep_alive_trycnt = %d\n",
+

[PATCH 2/6] wlcore: use to_delayed_work

2016-01-01 Thread Geliang Tang
Use to_delayed_work() instead of open-coding it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/net/wireless/ti/wlcore/main.c | 10 +-
 drivers/net/wireless/ti/wlcore/ps.c   |  2 +-
 drivers/net/wireless/ti/wlcore/scan.c |  2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/ti/wlcore/main.c 
b/drivers/net/wireless/ti/wlcore/main.c
index ec7f6af..5c12caa 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -244,7 +244,7 @@ static void wl12xx_tx_watchdog_work(struct work_struct 
*work)
struct delayed_work *dwork;
struct wl1271 *wl;
 
-   dwork = container_of(work, struct delayed_work, work);
+   dwork = to_delayed_work(work);
wl = container_of(dwork, struct wl1271, tx_watchdog_work);
 
mutex_lock(>mutex);
@@ -2085,7 +2085,7 @@ static void wlcore_channel_switch_work(struct work_struct 
*work)
struct wl12xx_vif *wlvif;
int ret;
 
-   dwork = container_of(work, struct delayed_work, work);
+   dwork = to_delayed_work(work);
wlvif = container_of(dwork, struct wl12xx_vif, channel_switch_work);
wl = wlvif->wl;
 
@@ -2121,7 +2121,7 @@ static void wlcore_connection_loss_work(struct 
work_struct *work)
struct ieee80211_vif *vif;
struct wl12xx_vif *wlvif;
 
-   dwork = container_of(work, struct delayed_work, work);
+   dwork = to_delayed_work(work);
wlvif = container_of(dwork, struct wl12xx_vif, connection_loss_work);
wl = wlvif->wl;
 
@@ -2150,7 +2150,7 @@ static void wlcore_pending_auth_complete_work(struct 
work_struct *work)
unsigned long time_spare;
int ret;
 
-   dwork = container_of(work, struct delayed_work, work);
+   dwork = to_delayed_work(work);
wlvif = container_of(dwork, struct wl12xx_vif,
 pending_auth_complete_work);
wl = wlvif->wl;
@@ -5660,7 +5660,7 @@ static void wlcore_roc_complete_work(struct work_struct 
*work)
struct wl1271 *wl;
int ret;
 
-   dwork = container_of(work, struct delayed_work, work);
+   dwork = to_delayed_work(work);
wl = container_of(dwork, struct wl1271, roc_complete_work);
 
ret = wlcore_roc_completed(wl);
diff --git a/drivers/net/wireless/ti/wlcore/ps.c 
b/drivers/net/wireless/ti/wlcore/ps.c
index 4cd316e..d4420da 100644
--- a/drivers/net/wireless/ti/wlcore/ps.c
+++ b/drivers/net/wireless/ti/wlcore/ps.c
@@ -38,7 +38,7 @@ void wl1271_elp_work(struct work_struct *work)
struct wl12xx_vif *wlvif;
int ret;
 
-   dwork = container_of(work, struct delayed_work, work);
+   dwork = to_delayed_work(work);
wl = container_of(dwork, struct wl1271, elp_work);
 
wl1271_debug(DEBUG_PSM, "elp work");
diff --git a/drivers/net/wireless/ti/wlcore/scan.c 
b/drivers/net/wireless/ti/wlcore/scan.c
index 1e3d51c..a384f3f 100644
--- a/drivers/net/wireless/ti/wlcore/scan.c
+++ b/drivers/net/wireless/ti/wlcore/scan.c
@@ -38,7 +38,7 @@ void wl1271_scan_complete_work(struct work_struct *work)
struct wl12xx_vif *wlvif;
int ret;
 
-   dwork = container_of(work, struct delayed_work, work);
+   dwork = to_delayed_work(work);
wl = container_of(dwork, struct wl1271, scan_complete_work);
 
wl1271_debug(DEBUG_SCAN, "Scanning complete");
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 5/6] mwifiex: use to_delayed_work

2016-01-01 Thread Geliang Tang
Use to_delayed_work() instead of open-coding it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/net/wireless/marvell/mwifiex/11h.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/11h.c 
b/drivers/net/wireless/marvell/mwifiex/11h.c
index 71a1b58..81c60d0 100644
--- a/drivers/net/wireless/marvell/mwifiex/11h.c
+++ b/drivers/net/wireless/marvell/mwifiex/11h.c
@@ -123,8 +123,7 @@ void mwifiex_11h_process_join(struct mwifiex_private *priv, 
u8 **buffer,
 void mwifiex_dfs_cac_work_queue(struct work_struct *work)
 {
struct cfg80211_chan_def chandef;
-   struct delayed_work *delayed_work =
-   container_of(work, struct delayed_work, work);
+   struct delayed_work *delayed_work = to_delayed_work(work);
struct mwifiex_private *priv =
container_of(delayed_work, struct mwifiex_private,
 dfs_cac_work);
@@ -289,8 +288,7 @@ int mwifiex_11h_handle_radar_detected(struct 
mwifiex_private *priv,
 void mwifiex_dfs_chan_sw_work_queue(struct work_struct *work)
 {
struct mwifiex_uap_bss_param *bss_cfg;
-   struct delayed_work *delayed_work =
-   container_of(work, struct delayed_work, work);
+   struct delayed_work *delayed_work = to_delayed_work(work);
struct mwifiex_private *priv =
container_of(delayed_work, struct mwifiex_private,
 dfs_chan_sw_work);
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/6] rtlwifi: use to_delayed_work

2016-01-01 Thread Geliang Tang
Use to_delayed_work() instead of open-coding it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/net/wireless/realtek/rtlwifi/wifi.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h 
b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index 4544752..d37ce16 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -2873,7 +2873,7 @@ value to host byte ordering.*/
(ppsc->cur_ps_level |= _ps_flg)
 
 #define container_of_dwork_rtl(x, y, z) \
-   container_of(container_of(x, struct delayed_work, work), y, z)
+   container_of(to_delayed_work(x), y, z)
 
 #define FILL_OCTET_STRING(_os, _octet, _len)   \
(_os).octet = (u8 *)(_octet);   \
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/6] cfg80211/mac80211: use to_delayed_work

2016-01-01 Thread Geliang Tang
Use to_delayed_work() instead of open-coding it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 net/mac80211/mlme.c | 3 +--
 net/wireless/mlme.c | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 1c342e2..ea70917 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1638,8 +1638,7 @@ void ieee80211_dynamic_ps_timer(unsigned long data)
 
 void ieee80211_dfs_cac_timer_work(struct work_struct *work)
 {
-   struct delayed_work *delayed_work =
-   container_of(work, struct delayed_work, work);
+   struct delayed_work *delayed_work = to_delayed_work(work);
struct ieee80211_sub_if_data *sdata =
container_of(delayed_work, struct ieee80211_sub_if_data,
 dfs_cac_timer_work);
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
index fb44fa3..4fccf52 100644
--- a/net/wireless/mlme.c
+++ b/net/wireless/mlme.c
@@ -721,7 +721,7 @@ void cfg80211_dfs_channels_update_work(struct work_struct 
*work)
unsigned long timeout, next_time = 0;
int bandid, i;
 
-   delayed_work = container_of(work, struct delayed_work, work);
+   delayed_work = to_delayed_work(work);
rdev = container_of(delayed_work, struct cfg80211_registered_device,
dfs_update_channels_wk);
wiphy = >wiphy;
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/6] wl1251: use to_delayed_work

2016-01-01 Thread Geliang Tang
Use to_delayed_work() instead of open-coding it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/net/wireless/ti/wl1251/ps.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ti/wl1251/ps.c 
b/drivers/net/wireless/ti/wl1251/ps.c
index b9e27b9..fa01b0a 100644
--- a/drivers/net/wireless/ti/wl1251/ps.c
+++ b/drivers/net/wireless/ti/wl1251/ps.c
@@ -32,7 +32,7 @@ void wl1251_elp_work(struct work_struct *work)
struct delayed_work *dwork;
struct wl1251 *wl;
 
-   dwork = container_of(work, struct delayed_work, work);
+   dwork = to_delayed_work(work);
wl = container_of(dwork, struct wl1251, elp_work);
 
wl1251_debug(DEBUG_PSM, "elp work");
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 5/9] ipw2x00: sdhci-pci: use to_pci_dev()

2015-12-27 Thread Geliang Tang
Use to_pci_dev() instead of open-coding it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/net/wireless/intel/ipw2x00/ipw2100.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2100.c 
b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
index 36818c7..121294f 100644
--- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c
@@ -3514,7 +3514,7 @@ static void ipw2100_msg_free(struct ipw2100_priv *priv)
 static ssize_t show_pci(struct device *d, struct device_attribute *attr,
char *buf)
 {
-   struct pci_dev *pci_dev = container_of(d, struct pci_dev, dev);
+   struct pci_dev *pci_dev = to_pci_dev(d);
char *out = buf;
int i, j;
u32 val;
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/3] NFC: trf7970a: use to_spi_device

2015-12-22 Thread Geliang Tang
Use to_spi_device() instead of open-coding it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/nfc/trf7970a.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
index f857feb..10842b7 100644
--- a/drivers/nfc/trf7970a.c
+++ b/drivers/nfc/trf7970a.c
@@ -2139,7 +2139,7 @@ static int trf7970a_remove(struct spi_device *spi)
 #ifdef CONFIG_PM_SLEEP
 static int trf7970a_suspend(struct device *dev)
 {
-   struct spi_device *spi = container_of(dev, struct spi_device, dev);
+   struct spi_device *spi = to_spi_device(dev);
struct trf7970a *trf = spi_get_drvdata(spi);
 
dev_dbg(dev, "Suspend\n");
@@ -2155,7 +2155,7 @@ static int trf7970a_suspend(struct device *dev)
 
 static int trf7970a_resume(struct device *dev)
 {
-   struct spi_device *spi = container_of(dev, struct spi_device, dev);
+   struct spi_device *spi = to_spi_device(dev);
struct trf7970a *trf = spi_get_drvdata(spi);
int ret;
 
@@ -2174,7 +2174,7 @@ static int trf7970a_resume(struct device *dev)
 #ifdef CONFIG_PM
 static int trf7970a_pm_runtime_suspend(struct device *dev)
 {
-   struct spi_device *spi = container_of(dev, struct spi_device, dev);
+   struct spi_device *spi = to_spi_device(dev);
struct trf7970a *trf = spi_get_drvdata(spi);
int ret;
 
@@ -2191,7 +2191,7 @@ static int trf7970a_pm_runtime_suspend(struct device *dev)
 
 static int trf7970a_pm_runtime_resume(struct device *dev)
 {
-   struct spi_device *spi = container_of(dev, struct spi_device, dev);
+   struct spi_device *spi = to_spi_device(dev);
struct trf7970a *trf = spi_get_drvdata(spi);
int ret;
 
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/7] iwlwifi: fix a problematic usage of WARN_ON_ONCE()

2015-11-25 Thread Geliang Tang
WARN_ON_ONCE() takes a condition rather than a format string. This
patch converted WARN_ON_ONCE() to WARN_ONCE() instead.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c 
b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
index d1ad103..58d7bee 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
@@ -1827,7 +1827,7 @@ static int rs_switch_to_column(struct iwl_mvm *mvm,
rate->type = lq_sta->is_vht ? LQ_VHT_MIMO2 : LQ_HT_MIMO2;
rate_mask = lq_sta->active_mimo2_rate;
} else {
-   WARN_ON_ONCE("Bad column mode");
+   WARN_ONCE(1, "Bad column mode");
}
 
if (column->mode != RS_LEGACY) {
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 5/9] staging: wilc1000: fix trivial typos

2015-10-18 Thread Geliang Tang
s/regsiter/register/

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/staging/wilc1000/linux_wlan.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c 
b/drivers/staging/wilc1000/linux_wlan.c
index ccab89f..6dc5faf 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1880,10 +1880,10 @@ static void __exit exit_wilc_driver(void)
}
 
 #ifndef WILC_SDIO
-   PRINT_D(INIT_DBG, "SPI unregsiter...\n");
+   PRINT_D(INIT_DBG, "SPI unregister...\n");
spi_unregister_driver(_bus);
 #else
-   PRINT_D(INIT_DBG, "SDIO unregsiter...\n");
+   PRINT_D(INIT_DBG, "SDIO unregister...\n");
sdio_unregister_driver(_bus);
 #endif
 
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] ath6kl: drop unlikely behind WARN_ON()

2015-10-05 Thread Geliang Tang
WARN_ON() already contain an unlikely compiler flag. Drop it.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
Changes in v2:
 - change subject prefix to ath6kl.
---
 drivers/net/wireless/ath/ath6kl/cfg80211.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c 
b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index a511ef3..fe38fc4 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -2217,7 +2217,7 @@ static int ath6kl_wow_suspend(struct ath6kl *ar, struct 
cfg80211_wowlan *wow)
 
/* enter / leave wow suspend on first vif always */
first_vif = ath6kl_vif_first(ar);
-   if (WARN_ON(unlikely(!first_vif)) ||
+   if (WARN_ON(!first_vif) ||
!ath6kl_cfg80211_ready(first_vif))
return -EIO;
 
@@ -2297,7 +2297,7 @@ static int ath6kl_wow_resume(struct ath6kl *ar)
int ret;
 
vif = ath6kl_vif_first(ar);
-   if (WARN_ON(unlikely(!vif)) ||
+   if (WARN_ON(!vif) ||
!ath6kl_cfg80211_ready(vif))
return -EIO;
 
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] mwifiex: fix a comment typo

2015-10-04 Thread Geliang Tang
Just fix a typo in the code comment.

Signed-off-by: Geliang Tang <geliangt...@163.com>
---
 drivers/net/wireless/mwifiex/cfg80211.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mwifiex/cfg80211.c 
b/drivers/net/wireless/mwifiex/cfg80211.c
index 30cbafb..b7ac45f 100644
--- a/drivers/net/wireless/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/mwifiex/cfg80211.c
@@ -2374,7 +2374,7 @@ mwifiex_cfg80211_leave_ibss(struct wiphy *wiphy, struct 
net_device *dev)
  * CFG802.11 operation handler for scan request.
  *
  * This function issues a scan request to the firmware based upon
- * the user specified scan configuration. On successfull completion,
+ * the user specified scan configuration. On successful completion,
  * it also informs the results.
  */
 static int
-- 
2.5.0


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html