* [PATCH 0/3] staging: rtl8723bs: remove lockdep warning @ 2021-08-30 7:09 Fabio Aiuto 2021-08-30 7:09 ` [PATCH 1/3] staging: rtl8723bs: unwrap initialization of queues Fabio Aiuto ` (3 more replies) 0 siblings, 4 replies; 7+ messages in thread From: Fabio Aiuto @ 2021-08-30 7:09 UTC (permalink / raw) To: gregkh; +Cc: hdegoede, Larry.Finger, linux-staging, linux-kernel, Fabio Aiuto This patchseries removes a lockdep warning that turned out to be a false positive. All "lockable" queues in the driver are initialized by a single function. This confuses lockdep which puts all locks in the same unexistent class. Fixed it by doing the initalization of queues in place. Done a small code cleaning and removed the no more used function. Tested-on: Lenovo ideapad Miix 300-10IBY Fabio Aiuto (3): staging: rtl8723bs: unwrap initialization of queues staging: rtl8723bs: remove unnecessary parentheses staging: rtl8723bs: remove unused _rtw_init_queue() function drivers/staging/rtl8723bs/core/rtw_ap.c | 3 +- drivers/staging/rtl8723bs/core/rtw_cmd.c | 3 +- drivers/staging/rtl8723bs/core/rtw_mlme.c | 6 ++-- drivers/staging/rtl8723bs/core/rtw_recv.c | 12 ++++--- drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 15 ++++++--- drivers/staging/rtl8723bs/core/rtw_xmit.c | 33 ++++++++++++------- .../staging/rtl8723bs/hal/rtl8723bs_recv.c | 6 ++-- .../staging/rtl8723bs/os_dep/osdep_service.c | 7 ---- 8 files changed, 52 insertions(+), 33 deletions(-) -- 2.20.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] staging: rtl8723bs: unwrap initialization of queues 2021-08-30 7:09 [PATCH 0/3] staging: rtl8723bs: remove lockdep warning Fabio Aiuto @ 2021-08-30 7:09 ` Fabio Aiuto 2021-08-30 7:09 ` [PATCH 2/3] staging: rtl8723bs: remove unnecessary parentheses Fabio Aiuto ` (2 subsequent siblings) 3 siblings, 0 replies; 7+ messages in thread From: Fabio Aiuto @ 2021-08-30 7:09 UTC (permalink / raw) To: gregkh; +Cc: hdegoede, Larry.Finger, linux-staging, linux-kernel, Fabio Aiuto unwrap initialization of queues to avoid false positive lockdep warning: [ 27.350258] ============================================ [ 27.350267] WARNING: possible recursive locking detected [ 27.350276] 5.14.0-rc6+ #16 Tainted: G C OE [ 27.350288] -------------------------------------------- [ 27.350295] RTW_CMD_THREAD/679 is trying to acquire lock: [ 27.350306] ffffa846c03290c8 (&(pqueue->lock)){+.-.}-{2:2}, at: rtw_alloc_network+0x1b/0xa0 [r8723bs] [ 27.350441] but task is already holding lock: [ 27.350448] ffffa846c0329118 (&(pqueue->lock)){+.-.}-{2:2}, at: rtw_update_scanned_network+0x33/0x1d0 [r8723bs] [ 27.350573] other info that might help us debug this: [ 27.350581] Possible unsafe locking scenario: [ 27.350588] CPU0 [ 27.350594] ---- [ 27.350600] lock(&(pqueue->lock)); [ 27.350614] lock(&(pqueue->lock)); [ 27.350627] *** DEADLOCK *** [ 27.350634] May be due to missing lock nesting notation [ 27.350641] 2 locks held by RTW_CMD_THREAD/679: [ 27.350652] #0: ffffa846c0329038 (&pmlmepriv->lock){+...}-{2:2}, at: rtw_survey_event_callback+0x2d/0xe0 [r8723bs] [ 27.350780] #1: ffffa846c0329118 (&(pqueue->lock)){+.-.}-{2:2}, at: rtw_update_scanned_network+0x33/0x1d0 [r8723bs] [ 27.350907] stack backtrace: [ 27.350916] CPU: 3 PID: 679 Comm: RTW_CMD_THREAD Tainted: G C OE 5.14.0-rc6+ #16 [ 27.350933] Hardware name: LENOVO 80NR/Madrid, BIOS DACN25WW 08/20/2015 [ 27.350943] Call Trace: [ 27.350959] dump_stack_lvl+0x56/0x6f [ 27.350982] __lock_acquire.cold.79+0x137/0x298 [ 27.351012] lock_acquire+0xb4/0x2c0 [ 27.351031] ? rtw_alloc_network+0x1b/0xa0 [r8723bs] [ 27.351140] ? rtw_update_scanned_network+0x33/0x1d0 [r8723bs] [ 27.351254] _raw_spin_lock_bh+0x34/0x40 [ 27.351271] ? rtw_alloc_network+0x1b/0xa0 [r8723bs] [ 27.351378] rtw_alloc_network+0x1b/0xa0 [r8723bs] [ 27.351488] rtw_update_scanned_network+0xa5/0x1d0 [r8723bs] [ 27.351605] rtw_survey_event_callback+0x54/0xe0 [r8723bs] [ 27.351719] mlme_evt_hdl+0x4e/0x70 [r8723bs] [ 27.351839] rtw_cmd_thread+0x16c/0x3d0 [r8723bs] [ 27.351945] ? rtw_stop_cmd_thread+0x50/0x50 [r8723bs] [ 27.352045] kthread+0x136/0x160 [ 27.352064] ? set_kthread_struct+0x40/0x40 [ 27.352083] ret_from_fork+0x22/0x30 This happens because the wrapping function _rtw_init_queues() bring lockdep considering all queues as a single one. But all queues are different with their own lock. Applied the following semantic patch: @@ expression a; @@ - _rtw_init_queue(&a); + INIT_LIST_HEAD(&a.queue); + spin_lock_init(&a.lock); Reported-by: Hans De Goede <hdegoede@redhat.com> Signed-off-by: Fabio Aiuto <fabioaiuto83@gmail.com> --- drivers/staging/rtl8723bs/core/rtw_ap.c | 3 +- drivers/staging/rtl8723bs/core/rtw_cmd.c | 3 +- drivers/staging/rtl8723bs/core/rtw_mlme.c | 6 ++-- drivers/staging/rtl8723bs/core/rtw_recv.c | 12 ++++--- drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 15 ++++++--- drivers/staging/rtl8723bs/core/rtw_xmit.c | 33 ++++++++++++------- .../staging/rtl8723bs/hal/rtl8723bs_recv.c | 6 ++-- 7 files changed, 52 insertions(+), 26 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_ap.c b/drivers/staging/rtl8723bs/core/rtw_ap.c index 6064dd6a76b4..79fbf14287b1 100644 --- a/drivers/staging/rtl8723bs/core/rtw_ap.c +++ b/drivers/staging/rtl8723bs/core/rtw_ap.c @@ -18,7 +18,8 @@ void init_mlme_ap_info(struct adapter *padapter) spin_lock_init(&pmlmepriv->bcn_update_lock); /* for ACL */ - _rtw_init_queue(&pacl_list->acl_node_q); + INIT_LIST_HEAD(&pacl_list->acl_node_q.queue); + spin_lock_init(&pacl_list->acl_node_q.lock); /* pmlmeext->bstart_bss = false; */ diff --git a/drivers/staging/rtl8723bs/core/rtw_cmd.c b/drivers/staging/rtl8723bs/core/rtw_cmd.c index d494c06dab96..76418c525b5c 100644 --- a/drivers/staging/rtl8723bs/core/rtw_cmd.c +++ b/drivers/staging/rtl8723bs/core/rtw_cmd.c @@ -166,7 +166,8 @@ int rtw_init_cmd_priv(struct cmd_priv *pcmdpriv) init_completion(&pcmdpriv->cmd_queue_comp); init_completion(&pcmdpriv->terminate_cmdthread_comp); - _rtw_init_queue(&(pcmdpriv->cmd_queue)); + INIT_LIST_HEAD(&(pcmdpriv->cmd_queue).queue); + spin_lock_init(&(pcmdpriv->cmd_queue).lock); /* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */ diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c index ab6a24d70cc9..d4650ef3dbe8 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -27,8 +27,10 @@ int rtw_init_mlme_priv(struct adapter *padapter) pmlmepriv->scan_mode = SCAN_ACTIVE;/* 1: active, 0: pasive. Maybe someday we should rename this varable to "active_mode" (Jeff) */ spin_lock_init(&pmlmepriv->lock); - _rtw_init_queue(&pmlmepriv->free_bss_pool); - _rtw_init_queue(&pmlmepriv->scanned_queue); + INIT_LIST_HEAD(&pmlmepriv->free_bss_pool.queue); + spin_lock_init(&pmlmepriv->free_bss_pool.lock); + INIT_LIST_HEAD(&pmlmepriv->scanned_queue.queue); + spin_lock_init(&pmlmepriv->scanned_queue.lock); set_scanned_network_val(pmlmepriv, 0); diff --git a/drivers/staging/rtl8723bs/core/rtw_recv.c b/drivers/staging/rtl8723bs/core/rtw_recv.c index 5b0a596eefb7..105fe0e3482a 100644 --- a/drivers/staging/rtl8723bs/core/rtw_recv.c +++ b/drivers/staging/rtl8723bs/core/rtw_recv.c @@ -25,7 +25,8 @@ void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv) /* for (i = 0; i<MAX_RX_NUMBLKS; i++) */ /* _rtw_init_queue(&psta_recvpriv->blk_strms[i]); */ - _rtw_init_queue(&psta_recvpriv->defrag_q); + INIT_LIST_HEAD(&psta_recvpriv->defrag_q.queue); + spin_lock_init(&psta_recvpriv->defrag_q.lock); } signed int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter) @@ -36,9 +37,12 @@ signed int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *pada spin_lock_init(&precvpriv->lock); - _rtw_init_queue(&precvpriv->free_recv_queue); - _rtw_init_queue(&precvpriv->recv_pending_queue); - _rtw_init_queue(&precvpriv->uc_swdec_pending_queue); + INIT_LIST_HEAD(&precvpriv->free_recv_queue.queue); + spin_lock_init(&precvpriv->free_recv_queue.lock); + INIT_LIST_HEAD(&precvpriv->recv_pending_queue.queue); + spin_lock_init(&precvpriv->recv_pending_queue.lock); + INIT_LIST_HEAD(&precvpriv->uc_swdec_pending_queue.queue); + spin_lock_init(&precvpriv->uc_swdec_pending_queue.lock); precvpriv->adapter = padapter; diff --git a/drivers/staging/rtl8723bs/core/rtw_sta_mgt.c b/drivers/staging/rtl8723bs/core/rtw_sta_mgt.c index 67ca219f95bf..bf090f3b1db6 100644 --- a/drivers/staging/rtl8723bs/core/rtw_sta_mgt.c +++ b/drivers/staging/rtl8723bs/core/rtw_sta_mgt.c @@ -19,7 +19,8 @@ void _rtw_init_stainfo(struct sta_info *psta) /* INIT_LIST_HEAD(&psta->sleep_list); */ /* INIT_LIST_HEAD(&psta->wakeup_list); */ - _rtw_init_queue(&psta->sleep_q); + INIT_LIST_HEAD(&psta->sleep_q.queue); + spin_lock_init(&psta->sleep_q.lock); psta->sleepq_len = 0; _rtw_init_sta_xmit_priv(&psta->sta_xmitpriv); @@ -62,14 +63,17 @@ u32 _rtw_init_sta_priv(struct sta_priv *pstapriv) pstapriv->pstainfo_buf = pstapriv->pallocated_stainfo_buf + 4 - ((SIZE_PTR)(pstapriv->pallocated_stainfo_buf) & 3); - _rtw_init_queue(&pstapriv->free_sta_queue); + INIT_LIST_HEAD(&pstapriv->free_sta_queue.queue); + spin_lock_init(&pstapriv->free_sta_queue.lock); spin_lock_init(&pstapriv->sta_hash_lock); /* _rtw_init_queue(&pstapriv->asoc_q); */ pstapriv->asoc_sta_count = 0; - _rtw_init_queue(&pstapriv->sleep_q); - _rtw_init_queue(&pstapriv->wakeup_q); + INIT_LIST_HEAD(&pstapriv->sleep_q.queue); + spin_lock_init(&pstapriv->sleep_q.lock); + INIT_LIST_HEAD(&pstapriv->wakeup_q.queue); + spin_lock_init(&pstapriv->wakeup_q.lock); psta = (struct sta_info *)(pstapriv->pstainfo_buf); @@ -242,7 +246,8 @@ struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) /* preorder_ctrl->wsize_b = (NR_RECVBUFF-2); */ preorder_ctrl->wsize_b = 64;/* 64; */ - _rtw_init_queue(&preorder_ctrl->pending_recvframe_queue); + INIT_LIST_HEAD(&preorder_ctrl->pending_recvframe_queue.queue); + spin_lock_init(&preorder_ctrl->pending_recvframe_queue.lock); rtw_init_recv_timer(preorder_ctrl); } diff --git a/drivers/staging/rtl8723bs/core/rtw_xmit.c b/drivers/staging/rtl8723bs/core/rtw_xmit.c index 79e4d7df1ef5..3eb6db2f26bb 100644 --- a/drivers/staging/rtl8723bs/core/rtw_xmit.c +++ b/drivers/staging/rtl8723bs/core/rtw_xmit.c @@ -13,7 +13,8 @@ static u8 RFC1042_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0x00 }; static void _init_txservq(struct tx_servq *ptxservq) { INIT_LIST_HEAD(&ptxservq->tx_pending); - _rtw_init_queue(&ptxservq->sta_pending); + INIT_LIST_HEAD(&ptxservq->sta_pending.queue); + spin_lock_init(&ptxservq->sta_pending.lock); ptxservq->qcnt = 0; } @@ -49,13 +50,19 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxmitpriv->adapter = padapter; - _rtw_init_queue(&pxmitpriv->be_pending); - _rtw_init_queue(&pxmitpriv->bk_pending); - _rtw_init_queue(&pxmitpriv->vi_pending); - _rtw_init_queue(&pxmitpriv->vo_pending); - _rtw_init_queue(&pxmitpriv->bm_pending); + INIT_LIST_HEAD(&pxmitpriv->be_pending.queue); + spin_lock_init(&pxmitpriv->be_pending.lock); + INIT_LIST_HEAD(&pxmitpriv->bk_pending.queue); + spin_lock_init(&pxmitpriv->bk_pending.lock); + INIT_LIST_HEAD(&pxmitpriv->vi_pending.queue); + spin_lock_init(&pxmitpriv->vi_pending.lock); + INIT_LIST_HEAD(&pxmitpriv->vo_pending.queue); + spin_lock_init(&pxmitpriv->vo_pending.lock); + INIT_LIST_HEAD(&pxmitpriv->bm_pending.queue); + spin_lock_init(&pxmitpriv->bm_pending.lock); - _rtw_init_queue(&pxmitpriv->free_xmit_queue); + INIT_LIST_HEAD(&pxmitpriv->free_xmit_queue.queue); + spin_lock_init(&pxmitpriv->free_xmit_queue.lock); /* * Please allocate memory with the sz = (struct xmit_frame) * NR_XMITFRAME, @@ -96,8 +103,10 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxmitpriv->frag_len = MAX_FRAG_THRESHOLD; /* init xmit_buf */ - _rtw_init_queue(&pxmitpriv->free_xmitbuf_queue); - _rtw_init_queue(&pxmitpriv->pending_xmitbuf_queue); + INIT_LIST_HEAD(&pxmitpriv->free_xmitbuf_queue.queue); + spin_lock_init(&pxmitpriv->free_xmitbuf_queue.lock); + INIT_LIST_HEAD(&pxmitpriv->pending_xmitbuf_queue.queue); + spin_lock_init(&pxmitpriv->pending_xmitbuf_queue.lock); pxmitpriv->pallocated_xmitbuf = vzalloc(NR_XMITBUFF * sizeof(struct xmit_buf) + 4); @@ -145,7 +154,8 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxmitpriv->free_xmitbuf_cnt = NR_XMITBUFF; /* init xframe_ext queue, the same count as extbuf */ - _rtw_init_queue(&pxmitpriv->free_xframe_ext_queue); + INIT_LIST_HEAD(&pxmitpriv->free_xframe_ext_queue.queue); + spin_lock_init(&pxmitpriv->free_xframe_ext_queue.lock); pxmitpriv->xframe_ext_alloc_addr = vzalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_frame) + 4); @@ -178,7 +188,8 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxmitpriv->free_xframe_ext_cnt = NR_XMIT_EXTBUFF; /* Init xmit extension buff */ - _rtw_init_queue(&pxmitpriv->free_xmit_extbuf_queue); + INIT_LIST_HEAD(&pxmitpriv->free_xmit_extbuf_queue.queue); + spin_lock_init(&pxmitpriv->free_xmit_extbuf_queue.lock); pxmitpriv->pallocated_xmit_extbuf = vzalloc(NR_XMIT_EXTBUFF * sizeof(struct xmit_buf) + 4); diff --git a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c b/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c index 418016930728..c0a1a6fbeb91 100644 --- a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c +++ b/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c @@ -378,8 +378,10 @@ s32 rtl8723bs_init_recv_priv(struct adapter *padapter) precvpriv = &padapter->recvpriv; /* 3 1. init recv buffer */ - _rtw_init_queue(&precvpriv->free_recv_buf_queue); - _rtw_init_queue(&precvpriv->recv_buf_pending_queue); + INIT_LIST_HEAD(&precvpriv->free_recv_buf_queue.queue); + spin_lock_init(&precvpriv->free_recv_buf_queue.lock); + INIT_LIST_HEAD(&precvpriv->recv_buf_pending_queue.queue); + spin_lock_init(&precvpriv->recv_buf_pending_queue.lock); n = NR_RECVBUFF * sizeof(struct recv_buf) + 4; precvpriv->pallocated_recv_buf = rtw_zmalloc(n); -- 2.20.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] staging: rtl8723bs: remove unnecessary parentheses 2021-08-30 7:09 [PATCH 0/3] staging: rtl8723bs: remove lockdep warning Fabio Aiuto 2021-08-30 7:09 ` [PATCH 1/3] staging: rtl8723bs: unwrap initialization of queues Fabio Aiuto @ 2021-08-30 7:09 ` Fabio Aiuto 2021-08-30 7:09 ` [PATCH 3/3] staging: rtl8723bs: remove unused _rtw_init_queue() function Fabio Aiuto 2021-08-30 7:44 ` [PATCH 0/3] staging: rtl8723bs: remove lockdep warning Hans de Goede 3 siblings, 0 replies; 7+ messages in thread From: Fabio Aiuto @ 2021-08-30 7:09 UTC (permalink / raw) To: gregkh; +Cc: hdegoede, Larry.Finger, linux-staging, linux-kernel, Fabio Aiuto Fix the following post commit hook checkpatch issues: CHECK: Unnecessary parentheses around pcmdpriv->cmd_queue 103: FILE: drivers/staging/rtl8723bs/core/rtw_cmd.c:169: + INIT_LIST_HEAD(&(pcmdpriv->cmd_queue).queue); CHECK: Unnecessary parentheses around pcmdpriv->cmd_queue 104: FILE: drivers/staging/rtl8723bs/core/rtw_cmd.c:170: + spin_lock_init(&(pcmdpriv->cmd_queue).lock); Signed-off-by: Fabio Aiuto <fabioaiuto83@gmail.com> --- drivers/staging/rtl8723bs/core/rtw_cmd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_cmd.c b/drivers/staging/rtl8723bs/core/rtw_cmd.c index 76418c525b5c..ca405dc76c2f 100644 --- a/drivers/staging/rtl8723bs/core/rtw_cmd.c +++ b/drivers/staging/rtl8723bs/core/rtw_cmd.c @@ -166,8 +166,8 @@ int rtw_init_cmd_priv(struct cmd_priv *pcmdpriv) init_completion(&pcmdpriv->cmd_queue_comp); init_completion(&pcmdpriv->terminate_cmdthread_comp); - INIT_LIST_HEAD(&(pcmdpriv->cmd_queue).queue); - spin_lock_init(&(pcmdpriv->cmd_queue).lock); + INIT_LIST_HEAD(&pcmdpriv->cmd_queue.queue); + spin_lock_init(&pcmdpriv->cmd_queue.lock); /* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */ -- 2.20.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] staging: rtl8723bs: remove unused _rtw_init_queue() function 2021-08-30 7:09 [PATCH 0/3] staging: rtl8723bs: remove lockdep warning Fabio Aiuto 2021-08-30 7:09 ` [PATCH 1/3] staging: rtl8723bs: unwrap initialization of queues Fabio Aiuto 2021-08-30 7:09 ` [PATCH 2/3] staging: rtl8723bs: remove unnecessary parentheses Fabio Aiuto @ 2021-08-30 7:09 ` Fabio Aiuto 2021-08-30 7:44 ` [PATCH 0/3] staging: rtl8723bs: remove lockdep warning Hans de Goede 3 siblings, 0 replies; 7+ messages in thread From: Fabio Aiuto @ 2021-08-30 7:09 UTC (permalink / raw) To: gregkh; +Cc: hdegoede, Larry.Finger, linux-staging, linux-kernel, Fabio Aiuto remove _rtw_init_queue() left unused by previous commit in this series. Signed-off-by: Fabio Aiuto <fabioaiuto83@gmail.com> --- drivers/staging/rtl8723bs/os_dep/osdep_service.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/staging/rtl8723bs/os_dep/osdep_service.c b/drivers/staging/rtl8723bs/os_dep/osdep_service.c index c58555a4012f..2d630ecef08b 100644 --- a/drivers/staging/rtl8723bs/os_dep/osdep_service.c +++ b/drivers/staging/rtl8723bs/os_dep/osdep_service.c @@ -49,13 +49,6 @@ inline int _rtw_netif_rx(struct net_device *ndev, struct sk_buff *skb) return netif_rx(skb); } -void _rtw_init_queue(struct __queue *pqueue) -{ - INIT_LIST_HEAD(&(pqueue->queue)); - - spin_lock_init(&(pqueue->lock)); -} - struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv, void *old_priv) { struct net_device *pnetdev; -- 2.20.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] staging: rtl8723bs: remove lockdep warning 2021-08-30 7:09 [PATCH 0/3] staging: rtl8723bs: remove lockdep warning Fabio Aiuto ` (2 preceding siblings ...) 2021-08-30 7:09 ` [PATCH 3/3] staging: rtl8723bs: remove unused _rtw_init_queue() function Fabio Aiuto @ 2021-08-30 7:44 ` Hans de Goede 2021-08-30 8:14 ` Fabio Aiuto 3 siblings, 1 reply; 7+ messages in thread From: Hans de Goede @ 2021-08-30 7:44 UTC (permalink / raw) To: Fabio Aiuto, gregkh; +Cc: Larry.Finger, linux-staging, linux-kernel Hi, On 8/30/21 9:09 AM, Fabio Aiuto wrote: > This patchseries removes a lockdep warning that turned out to > be a false positive. > > All "lockable" queues in the driver are initialized by > a single function. This confuses lockdep which puts all > locks in the same unexistent class. > > Fixed it by doing the initalization of queues in place. > > Done a small code cleaning and removed the no more > used function. > > Tested-on: Lenovo ideapad Miix 300-10IBY Thank you so much for fixing this. The entire series looks good to me: Reviewed-by: Hans de Goede <hdegoede@redhat.com> For the series. Regards, Hans > > Fabio Aiuto (3): > staging: rtl8723bs: unwrap initialization of queues > staging: rtl8723bs: remove unnecessary parentheses > staging: rtl8723bs: remove unused _rtw_init_queue() function > > drivers/staging/rtl8723bs/core/rtw_ap.c | 3 +- > drivers/staging/rtl8723bs/core/rtw_cmd.c | 3 +- > drivers/staging/rtl8723bs/core/rtw_mlme.c | 6 ++-- > drivers/staging/rtl8723bs/core/rtw_recv.c | 12 ++++--- > drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 15 ++++++--- > drivers/staging/rtl8723bs/core/rtw_xmit.c | 33 ++++++++++++------- > .../staging/rtl8723bs/hal/rtl8723bs_recv.c | 6 ++-- > .../staging/rtl8723bs/os_dep/osdep_service.c | 7 ---- > 8 files changed, 52 insertions(+), 33 deletions(-) > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] staging: rtl8723bs: remove lockdep warning 2021-08-30 7:44 ` [PATCH 0/3] staging: rtl8723bs: remove lockdep warning Hans de Goede @ 2021-08-30 8:14 ` Fabio Aiuto 0 siblings, 0 replies; 7+ messages in thread From: Fabio Aiuto @ 2021-08-30 8:14 UTC (permalink / raw) To: Hans de Goede; +Cc: gregkh, Larry.Finger, linux-staging, linux-kernel Hello Hans, On Mon, Aug 30, 2021 at 09:44:01AM +0200, Hans de Goede wrote: > Hi, > > On 8/30/21 9:09 AM, Fabio Aiuto wrote: > > This patchseries removes a lockdep warning that turned out to > > be a false positive. > > > > All "lockable" queues in the driver are initialized by > > a single function. This confuses lockdep which puts all > > locks in the same unexistent class. > > > > Fixed it by doing the initalization of queues in place. > > > > Done a small code cleaning and removed the no more > > used function. > > > > Tested-on: Lenovo ideapad Miix 300-10IBY > > Thank you so much for fixing this. > > The entire series looks good to me: > > Reviewed-by: Hans de Goede <hdegoede@redhat.com> > > For the series. Thank you, fabio > > Regards, > > Hans > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 0/3] Cleanup tasks in rtw_xmit.c @ 2019-11-01 21:48 Javier F. Arias 2019-11-01 21:49 ` [PATCH 2/3] staging: rtl8723bs: Remove unnecessary parentheses Javier F. Arias 0 siblings, 1 reply; 7+ messages in thread From: Javier F. Arias @ 2019-11-01 21:48 UTC (permalink / raw) To: gregkh; +Cc: outreachy-kernel This patchset performs cleanup tasks to fix warnings displayed by checkpatch. Javier F. Arias (3): staging: rtl8723bs: Fix multiple assignment warning staging: rtl8723bs: Remove unnecessary parentheses staging: rtl8723bs: Fix lines over 80 characters drivers/staging/rtl8723bs/core/rtw_xmit.c | 93 +++++++++++++---------- 1 file changed, 54 insertions(+), 39 deletions(-) -- 2.20.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/3] staging: rtl8723bs: Remove unnecessary parentheses 2019-11-01 21:48 [PATCH 0/3] Cleanup tasks in rtw_xmit.c Javier F. Arias @ 2019-11-01 21:49 ` Javier F. Arias 0 siblings, 0 replies; 7+ messages in thread From: Javier F. Arias @ 2019-11-01 21:49 UTC (permalink / raw) To: gregkh; +Cc: outreachy-kernel This patch removes unnecessary parentheses. Issue found by checkpatch Signed-off-by: Javier F. Arias <jarias.linux@gmail.com> --- drivers/staging/rtl8723bs/core/rtw_xmit.c | 62 +++++++++++------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_xmit.c b/drivers/staging/rtl8723bs/core/rtw_xmit.c index 9a3790091a5e..d7eabee36716 100644 --- a/drivers/staging/rtl8723bs/core/rtw_xmit.c +++ b/drivers/staging/rtl8723bs/core/rtw_xmit.c @@ -89,7 +89,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxframe = (struct xmit_frame *) pxmitpriv->pxmit_frame_buf; for (i = 0; i < NR_XMITFRAME; i++) { - INIT_LIST_HEAD(&(pxframe->list)); + INIT_LIST_HEAD(&pxframe->list); pxframe->padapter = padapter; pxframe->frame_tag = NULL_FRAMETAG; @@ -99,7 +99,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxframe->buf_addr = NULL; pxframe->pxmitbuf = NULL; - list_add_tail(&(pxframe->list), &(pxmitpriv->free_xmit_queue.queue)); + list_add_tail(&pxframe->list, &pxmitpriv->free_xmit_queue.queue); pxframe++; } @@ -151,7 +151,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxmitbuf->flags = XMIT_VO_QUEUE; - list_add_tail(&pxmitbuf->list, &(pxmitpriv->free_xmitbuf_queue.queue)); + list_add_tail(&pxmitbuf->list, &pxmitpriv->free_xmitbuf_queue.queue); #ifdef DBG_XMIT_BUF pxmitbuf->no = i; #endif @@ -177,7 +177,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxframe = (struct xmit_frame *)pxmitpriv->xframe_ext; for (i = 0; i < NR_XMIT_EXTBUFF; i++) { - INIT_LIST_HEAD(&(pxframe->list)); + INIT_LIST_HEAD(&pxframe->list); pxframe->padapter = padapter; pxframe->frame_tag = NULL_FRAMETAG; @@ -189,7 +189,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxframe->ext_tag = 1; - list_add_tail(&(pxframe->list), &(pxmitpriv->free_xframe_ext_queue.queue)); + list_add_tail(&pxframe->list, &pxmitpriv->free_xframe_ext_queue.queue); pxframe++; } @@ -229,7 +229,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) pxmitbuf->ptail = pxmitbuf->phead; pxmitbuf->pdata = pxmitbuf->phead; - list_add_tail(&pxmitbuf->list, &(pxmitpriv->free_xmit_extbuf_queue.queue)); + list_add_tail(&pxmitbuf->list, &pxmitpriv->free_xmit_extbuf_queue.queue); #ifdef DBG_XMIT_BUF_EXT pxmitbuf->no = i; #endif @@ -375,8 +375,8 @@ static void update_attrib_vcs_info(struct adapter *padapter, struct xmit_frame * u32 sz; struct pkt_attrib *pattrib = &pxmitframe->attrib; /* struct sta_info *psta = pattrib->psta; */ - struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); - struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); + struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; + struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; if (pattrib->nr_frags != 1) sz = padapter->xmitpriv.frag_len; @@ -958,7 +958,7 @@ static s32 xmitframe_addmic(struct adapter *padapter, struct xmit_frame *pxmitfr RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("curfragnum =%d length =%d pattrib->icv_len =%d", curfragnum, length, pattrib->icv_len)); } } - rtw_secgetmic(&micdata, &(mic[0])); + rtw_secgetmic(&micdata, &mic[0]); RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("xmitframe_addmic: before add mic code!!!\n")); RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("xmitframe_addmic: pattrib->last_txcmdsz =%d!!!\n", pattrib->last_txcmdsz)); RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("xmitframe_addmic: mic[0]= 0x%.2x , mic[1]= 0x%.2x , mic[2]= 0x%.2x , mic[3]= 0x%.2x\n\ @@ -966,7 +966,7 @@ static s32 xmitframe_addmic(struct adapter *padapter, struct xmit_frame *pxmitfr mic[0], mic[1], mic[2], mic[3], mic[4], mic[5], mic[6], mic[7])); /* add mic code and add the mic code length in last_txcmdsz */ - memcpy(payload, &(mic[0]), 8); + memcpy(payload, &mic[0], 8); pattrib->last_txcmdsz += 8; RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("\n ========last pkt ========\n")); @@ -1032,7 +1032,7 @@ s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr, struct pkt_attrib *pattr SetFrameSubType(fctrl, pattrib->subtype); if (pattrib->subtype & WIFI_DATA_TYPE) { - if ((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true)) { + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) { /* to_ds = 1, fr_ds = 0; */ { @@ -1047,7 +1047,7 @@ s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr, struct pkt_attrib *pattr if (pqospriv->qos_option) qos_option = true; - } else if ((check_fwstate(pmlmepriv, WIFI_AP_STATE) == true)) { + } else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) { /* to_ds = 0, fr_ds = 1; */ SetFrDs(fctrl); memcpy(pwlanhdr->addr1, pattrib->dst, ETH_ALEN); @@ -1414,7 +1414,7 @@ s32 rtw_mgmt_xmitframe_coalesce(struct adapter *padapter, _pkt *pkt, struct xmit pmlmeext->mgnt_80211w_IPN++; /* add MME IE with MIC all zero, MME string doesn't include element id and length */ - pframe = rtw_set_ie(pframe, _MME_IE_, 16, MME, &(pattrib->pktlen)); + pframe = rtw_set_ie(pframe, _MME_IE_, 16, MME, &pattrib->pktlen); pattrib->last_txcmdsz = pattrib->pktlen; /* total frame length - header length */ frame_body_len = pattrib->pktlen - sizeof(struct ieee80211_hdr_3addr); @@ -1693,7 +1693,7 @@ struct xmit_buf *rtw_alloc_xmitbuf_ext(struct xmit_priv *pxmitpriv) pxmitbuf = LIST_CONTAINOR(plist, struct xmit_buf, list); - list_del_init(&(pxmitbuf->list)); + list_del_init(&pxmitbuf->list); } if (pxmitbuf) { @@ -1734,7 +1734,7 @@ s32 rtw_free_xmitbuf_ext(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf) list_del_init(&pxmitbuf->list); - list_add_tail(&(pxmitbuf->list), get_list_head(pfree_queue)); + list_add_tail(&pxmitbuf->list, get_list_head(pfree_queue)); pxmitpriv->free_xmit_extbuf_cnt++; #ifdef DBG_XMIT_BUF_EXT DBG_871X("DBG_XMIT_BUF_EXT FREE no =%d, free_xmit_extbuf_cnt =%d\n", pxmitbuf->no, pxmitpriv->free_xmit_extbuf_cnt); @@ -1766,7 +1766,7 @@ struct xmit_buf *rtw_alloc_xmitbuf(struct xmit_priv *pxmitpriv) pxmitbuf = LIST_CONTAINOR(plist, struct xmit_buf, list); - list_del_init(&(pxmitbuf->list)); + list_del_init(&pxmitbuf->list); } if (pxmitbuf) { @@ -1822,7 +1822,7 @@ s32 rtw_free_xmitbuf(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf) list_del_init(&pxmitbuf->list); - list_add_tail(&(pxmitbuf->list), get_list_head(pfree_xmitbuf_queue)); + list_add_tail(&pxmitbuf->list, get_list_head(pfree_xmitbuf_queue)); pxmitpriv->free_xmitbuf_cnt++; /* DBG_871X("FREE, free_xmitbuf_cnt =%d\n", pxmitpriv->free_xmitbuf_cnt); */ @@ -1886,7 +1886,7 @@ struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* _queue *pf pxframe = LIST_CONTAINOR(plist, struct xmit_frame, list); - list_del_init(&(pxframe->list)); + list_del_init(&pxframe->list); pxmitpriv->free_xmitframe_cnt--; RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_alloc_xmitframe():free_xmitframe_cnt =%d\n", pxmitpriv->free_xmitframe_cnt)); } @@ -1913,7 +1913,7 @@ struct xmit_frame *rtw_alloc_xmitframe_ext(struct xmit_priv *pxmitpriv) plist = get_next(phead); pxframe = LIST_CONTAINOR(plist, struct xmit_frame, list); - list_del_init(&(pxframe->list)); + list_del_init(&pxframe->list); pxmitpriv->free_xframe_ext_cnt--; RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_alloc_xmitframe_ext():free_xmitframe_cnt =%d\n", pxmitpriv->free_xframe_ext_cnt)); } @@ -2013,7 +2013,7 @@ void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, struct __queue *pfram struct list_head *plist, *phead; struct xmit_frame *pxmitframe; - spin_lock_bh(&(pframequeue->lock)); + spin_lock_bh(&pframequeue->lock); phead = get_list_head(pframequeue); plist = get_next(phead); @@ -2027,7 +2027,7 @@ void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, struct __queue *pfram rtw_free_xmitframe(pxmitpriv, pxmitframe); } - spin_unlock_bh(&(pframequeue->lock)); + spin_unlock_bh(&pframequeue->lock); } s32 rtw_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitframe) @@ -2050,21 +2050,21 @@ struct tx_servq *rtw_get_sta_pending(struct adapter *padapter, struct sta_info * switch (up) { case 1: case 2: - ptxservq = &(psta->sta_xmitpriv.bk_q); + ptxservq = &psta->sta_xmitpriv.bk_q; *(ac) = 3; RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_get_sta_pending : BK\n")); break; case 4: case 5: - ptxservq = &(psta->sta_xmitpriv.vi_q); + ptxservq = &psta->sta_xmitpriv.vi_q; *(ac) = 1; RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_get_sta_pending : VI\n")); break; case 6: case 7: - ptxservq = &(psta->sta_xmitpriv.vo_q); + ptxservq = &psta->sta_xmitpriv.vo_q; *(ac) = 0; RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_get_sta_pending : VO\n")); break; @@ -2072,7 +2072,7 @@ struct tx_servq *rtw_get_sta_pending(struct adapter *padapter, struct sta_info * case 0: case 3: default: - ptxservq = &(psta->sta_xmitpriv.be_q); + ptxservq = &psta->sta_xmitpriv.be_q; *(ac) = 2; RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_get_sta_pending : BE\n")); break; @@ -2608,24 +2608,24 @@ void stop_sta_xmit(struct adapter *padapter, struct sta_info *psta) dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vo_q.sta_pending); - list_del_init(&(pstaxmitpriv->vo_q.tx_pending)); + list_del_init(&pstaxmitpriv->vo_q.tx_pending); dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->vi_q.sta_pending); - list_del_init(&(pstaxmitpriv->vi_q.tx_pending)); + list_del_init(&pstaxmitpriv->vi_q.tx_pending); dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->be_q.sta_pending); - list_del_init(&(pstaxmitpriv->be_q.tx_pending)); + list_del_init(&pstaxmitpriv->be_q.tx_pending); dequeue_xmitframes_to_sleeping_queue(padapter, psta, &pstaxmitpriv->bk_q.sta_pending); - list_del_init(&(pstaxmitpriv->bk_q.tx_pending)); + list_del_init(&pstaxmitpriv->bk_q.tx_pending); /* for BC/MC Frames */ pstaxmitpriv = &psta_bmc->sta_xmitpriv; dequeue_xmitframes_to_sleeping_queue(padapter, psta_bmc, &pstaxmitpriv->be_q.sta_pending); - list_del_init(&(pstaxmitpriv->be_q.tx_pending)); + list_del_init(&pstaxmitpriv->be_q.tx_pending); spin_unlock_bh(&pxmitpriv->lock); } @@ -2871,7 +2871,7 @@ void enqueue_pending_xmitbuf( list_add_tail(&pxmitbuf->list, get_list_head(pqueue)); spin_unlock_bh(&pqueue->lock); - complete(&(pri_adapter->xmitpriv.xmit_comp)); + complete(&pri_adapter->xmitpriv.xmit_comp); } void enqueue_pending_xmitbuf_to_head( -- 2.20.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-08-30 8:14 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-08-30 7:09 [PATCH 0/3] staging: rtl8723bs: remove lockdep warning Fabio Aiuto 2021-08-30 7:09 ` [PATCH 1/3] staging: rtl8723bs: unwrap initialization of queues Fabio Aiuto 2021-08-30 7:09 ` [PATCH 2/3] staging: rtl8723bs: remove unnecessary parentheses Fabio Aiuto 2021-08-30 7:09 ` [PATCH 3/3] staging: rtl8723bs: remove unused _rtw_init_queue() function Fabio Aiuto 2021-08-30 7:44 ` [PATCH 0/3] staging: rtl8723bs: remove lockdep warning Hans de Goede 2021-08-30 8:14 ` Fabio Aiuto -- strict thread matches above, loose matches on Subject: below -- 2019-11-01 21:48 [PATCH 0/3] Cleanup tasks in rtw_xmit.c Javier F. Arias 2019-11-01 21:49 ` [PATCH 2/3] staging: rtl8723bs: Remove unnecessary parentheses Javier F. Arias
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.