From fc3fae1cda267aac4dc5a0442402c5368f4f078a Mon Sep 17 00:00:00 2001 From: Ivo van Doorn Date: Sun, 10 Feb 2008 22:50:04 +0100 Subject: [PATCH] --- yaml --- r: 89936 b: refs/heads/master c: e44df9296a8ab9d9160e230d68a1b01015c94e93 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/rt2x00/rt2x00mac.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d21ae4e68709..b9d72ce50dd4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 21795094e2b71b4b11bfb468321046c1336cef69 +refs/heads/master: e44df9296a8ab9d9160e230d68a1b01015c94e93 diff --git a/trunk/drivers/net/wireless/rt2x00/rt2x00mac.c b/trunk/drivers/net/wireless/rt2x00/rt2x00mac.c index 8c24d3b36d28..91b62ddbf9f0 100644 --- a/trunk/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/trunk/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -334,10 +334,17 @@ int rt2x00mac_config_interface(struct ieee80211_hw *hw, */ if (conf->type != IEEE80211_IF_TYPE_AP) memcpy(&intf->bssid, conf->bssid, ETH_ALEN); - rt2x00lib_config_intf(rt2x00dev, intf, conf->type, NULL, intf->bssid); spin_unlock(&intf->lock); + /* + * Call rt2x00_config_intf() outside of the spinlock context since + * the call will sleep for USB drivers. By using the ieee80211_if_conf + * values as arguments we make keep access to rt2x00_intf thread safe + * even without the lock. + */ + rt2x00lib_config_intf(rt2x00dev, intf, conf->type, NULL, conf->bssid); + /* * We only need to initialize the beacon when master mode is enabled. */