2023-12-04 20:37:48

by Sasha Levin

[permalink] [raw]
Subject: [PATCH AUTOSEL 4.14] wifi: cfg80211: lock wiphy mutex for rfkill poll

From: Johannes Berg <[email protected]>

[ Upstream commit 8e2f6f2366219b3304b227bdd2f04b64c92e3e12 ]

We want to guarantee the mutex is held for pretty much
all operations, so ensure that here as well.

Reported-by: [email protected]
Signed-off-by: Johannes Berg <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
net/wireless/core.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/net/wireless/core.c b/net/wireless/core.c
index 0e08629b15d1d..abe7912a23760 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -202,7 +202,9 @@ static void cfg80211_rfkill_poll(struct rfkill *rfkill, void *data)
{
struct cfg80211_registered_device *rdev = data;

+ wiphy_lock(&rdev->wiphy);
rdev_rfkill_poll(rdev);
+ wiphy_unlock(&rdev->wiphy);
}

void cfg80211_stop_p2p_device(struct cfg80211_registered_device *rdev,
--
2.42.0



2023-12-04 20:50:46

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH AUTOSEL 4.14] wifi: cfg80211: lock wiphy mutex for rfkill poll

On Mon, 2023-12-04 at 15:37 -0500, Sasha Levin wrote:
>
> +++ b/net/wireless/core.c
> @@ -202,7 +202,9 @@ static void cfg80211_rfkill_poll(struct rfkill *rfkill, void *data)
> {
> struct cfg80211_registered_device *rdev = data;
>
> + wiphy_lock(&rdev->wiphy);

This can't even _build_ on this old kernel?!

Anyway, my locking rework only went into 6.7, so this doesn't make sense
in any stable kernel, it's just not required.

johannes