linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2.6.39] mac80211: fix SMPS debugfs locking
@ 2011-04-19 18:44 Johannes Berg
  0 siblings, 0 replies; only message in thread
From: Johannes Berg @ 2011-04-19 18:44 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, Venkataraman, Meenakshi

From: Johannes Berg <johannes.berg@intel.com>

The locking with SMPS requests means that the
debugs file should lock the mgd mutex, not the
iflist mutex. Calls to __ieee80211_request_smps()
need to hold that mutex, so add an assertion.

This has always been wrong, but for some reason
never been noticed, probably because the locking
error only happens while unassociated.

Cc: stable@kernel.org [2.6.34+]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/mac80211/cfg.c            |    2 ++
 net/mac80211/debugfs_netdev.c |    4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

--- a/net/mac80211/debugfs_netdev.c	2011-04-19 17:41:45.000000000 +0200
+++ b/net/mac80211/debugfs_netdev.c	2011-04-19 20:38:44.000000000 +0200
@@ -177,9 +177,9 @@ static int ieee80211_set_smps(struct iee
 	if (sdata->vif.type != NL80211_IFTYPE_STATION)
 		return -EOPNOTSUPP;
 
-	mutex_lock(&local->iflist_mtx);
+	mutex_lock(&sdata->u.mgd.mtx);
 	err = __ieee80211_request_smps(sdata, smps_mode);
-	mutex_unlock(&local->iflist_mtx);
+	mutex_unlock(&sdata->u.mgd.mtx);
 
 	return err;
 }
--- a/net/mac80211/cfg.c	2011-04-19 20:38:09.000000000 +0200
+++ b/net/mac80211/cfg.c	2011-04-19 20:38:28.000000000 +0200
@@ -1526,6 +1526,8 @@ int __ieee80211_request_smps(struct ieee
 	enum ieee80211_smps_mode old_req;
 	int err;
 
+	lockdep_assert_held(&sdata->u.mgd.mtx);
+
 	old_req = sdata->u.mgd.req_smps;
 	sdata->u.mgd.req_smps = smps_mode;
 



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-04-19 18:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-19 18:44 [PATCH 2.6.39] mac80211: fix SMPS debugfs locking Johannes Berg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).