Message ID | 20230209222622.1751-1-ansuelsmth@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 60b7d62ba8cdbd073997bff0f1cdae8d844002c0 |
Delegated to: | Kalle Valo |
Headers | show |
Series | wifi: ath11k: fix SAC bug on peer addition with sta band migration | expand |
Christian Marangi <ansuelsmth@gmail.com> wrote: > Fix sleep in atomic context warning detected by Smatch static checker > analyzer. > > Following the locking pattern for peer_rhash_add lock tbl_mtx_lock mutex > always even if sta is not transitioning to another band. > This is peer_add function and a more secure locking should not cause > performance regression. > > Fixes: d673cb6fe6c0 ("wifi: ath11k: fix peer addition/deletion error on sta band migration") > Reported-by: Dan Carpenter <error27@gmail.com> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> I assume you only compile tested this and I'll add that to the commit log. It's always good to know how the patch was tested.
On Mon, Feb 20, 2023 at 08:57:51AM +0000, Kalle Valo wrote: > Christian Marangi <ansuelsmth@gmail.com> wrote: > > > Fix sleep in atomic context warning detected by Smatch static checker > > analyzer. > > > > Following the locking pattern for peer_rhash_add lock tbl_mtx_lock mutex > > always even if sta is not transitioning to another band. > > This is peer_add function and a more secure locking should not cause > > performance regression. > > > > Fixes: d673cb6fe6c0 ("wifi: ath11k: fix peer addition/deletion error on sta band migration") > > Reported-by: Dan Carpenter <error27@gmail.com> > > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> > > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> > > I assume you only compile tested this and I'll add that to the commit log. It's > always good to know how the patch was tested. > Hi, I just got time to test this and works correctly on my Xiaomi AX3600. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1
Christian Marangi <ansuelsmth@gmail.com> writes: > On Mon, Feb 20, 2023 at 08:57:51AM +0000, Kalle Valo wrote: >> Christian Marangi <ansuelsmth@gmail.com> wrote: >> >> > Fix sleep in atomic context warning detected by Smatch static checker >> > analyzer. >> > >> > Following the locking pattern for peer_rhash_add lock tbl_mtx_lock mutex >> > always even if sta is not transitioning to another band. >> > This is peer_add function and a more secure locking should not cause >> > performance regression. >> > >> > Fixes: d673cb6fe6c0 ("wifi: ath11k: fix peer addition/deletion >> > error on sta band migration") >> > Reported-by: Dan Carpenter <error27@gmail.com> >> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> >> > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> >> >> I assume you only compile tested this and I'll add that to the commit log. It's >> always good to know how the patch was tested. >> > > Hi, I just got time to test this and works correctly on my Xiaomi > AX3600. > > Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1 Thanks, I'll add this to the commit log.
Christian Marangi <ansuelsmth@gmail.com> wrote: > Fix sleep in atomic context warning detected by Smatch static checker > analyzer. > > Following the locking pattern for peer_rhash_add lock tbl_mtx_lock mutex > always even if sta is not transitioning to another band. > This is peer_add function and a more secure locking should not cause > performance regression. > > Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1 > > Fixes: d673cb6fe6c0 ("wifi: ath11k: fix peer addition/deletion error on sta band migration") > Reported-by: Dan Carpenter <error27@gmail.com> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Patch applied to ath-next branch of ath.git, thanks. 60b7d62ba8cd wifi: ath11k: fix SAC bug on peer addition with sta band migration
diff --git a/drivers/net/wireless/ath/ath11k/peer.c b/drivers/net/wireless/ath/ath11k/peer.c index 1ae7af02c364..1380811827a8 100644 --- a/drivers/net/wireless/ath/ath11k/peer.c +++ b/drivers/net/wireless/ath/ath11k/peer.c @@ -382,22 +382,23 @@ int ath11k_peer_create(struct ath11k *ar, struct ath11k_vif *arvif, return -ENOBUFS; } + mutex_lock(&ar->ab->tbl_mtx_lock); spin_lock_bh(&ar->ab->base_lock); peer = ath11k_peer_find_by_addr(ar->ab, param->peer_addr); if (peer) { if (peer->vdev_id == param->vdev_id) { spin_unlock_bh(&ar->ab->base_lock); + mutex_unlock(&ar->ab->tbl_mtx_lock); return -EINVAL; } /* Assume sta is transitioning to another band. * Remove here the peer from rhash. */ - mutex_lock(&ar->ab->tbl_mtx_lock); ath11k_peer_rhash_delete(ar->ab, peer); - mutex_unlock(&ar->ab->tbl_mtx_lock); } spin_unlock_bh(&ar->ab->base_lock); + mutex_unlock(&ar->ab->tbl_mtx_lock); ret = ath11k_wmi_send_peer_create_cmd(ar, param); if (ret) {
Fix sleep in atomic context warning detected by Smatch static checker analyzer. Following the locking pattern for peer_rhash_add lock tbl_mtx_lock mutex always even if sta is not transitioning to another band. This is peer_add function and a more secure locking should not cause performance regression. Fixes: d673cb6fe6c0 ("wifi: ath11k: fix peer addition/deletion error on sta band migration") Reported-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> --- drivers/net/wireless/ath/ath11k/peer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)