Skip to contentSkip to conversation

mac80211: ieee80211_sta_set_bssid should call config_interface()

PATCH In review Samuel Ortiz 3 participants 3 messages Jan 23, 2009 mac80211

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mac80211: ieee80211_sta_set_bssid should call config_interface()

From: Samuel Ortiz <[email protected]>

With commit e32b1b9a33759e8a83ac566c4c43f23ed5d6343b, we end up not calling config_interface() when we're in STA, but not Ad-Hoc. This breaks several drivers, and the fix is to get ieee80211_sta_set_bssid() to call ieee80211_if_config() again.

---
 net/mac80211/mlme.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)
net/mac80211/mlme.c +12 -0
Index: wireless-testing/net/mac80211/mlme.c
===================================================================
@@ -2650,6 +2650,18 @@ int ieee80211_sta_set_bssid(struct ieee8
 		ifsta->flags &= ~IEEE80211_STA_BSSID_SET;
 	}
 
+	if (netif_running(sdata->dev)) {
+		int ret;
+
+		ret = ieee80211_if_config(sdata, IEEE80211_IFCC_BSSID);
+
+		if (ret) {
+			printk(KERN_DEBUG "%s: Failed to config new BSSID to "
+			       "the low-level driver\n", sdata->dev->name);
+			return ret;
+		}
+	}
+
 	return ieee80211_sta_set_ssid(sdata, ifsta->ssid, ifsta->ssid_len);
 }
 
Signature · 2 lines
Intel Open Source Technology Centre
http://oss.intel.com/
#1 lore raw

Just to clarify:
The revert-patch of Alina's fix (causing regression) is no more needed?

-SD

Quoted 44 lines · Samuel Ortiz

From: Samuel Ortiz <[email protected]>

With commit e32b1b9a33759e8a83ac566c4c43f23ed5d6343b, we end up not calling config_interface() when we're in STA, but not Ad-Hoc. This breaks several drivers, and the fix is to get ieee80211_sta_set_bssid() to call ieee80211_if_config() again.

---
 net/mac80211/mlme.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

Index: wireless-testing/net/mac80211/mlme.c
===================================================================

net/mac80211/mlme.c 2009-01-23 01:36:51.000000000 +0100 renamed from net/mac80211/mlme.c 2009-01-23 01:33:54.000000000 +0100 +12 -1
@@ -2650,6 +2650,18 @@ int ieee80211_sta_set_bssid(struct ieee8
               ifsta->flags &= ~IEEE80211_STA_BSSID_SET;
       }
 
+       if (netif_running(sdata->dev)) {
+               int ret;
+
+               ret = ieee80211_if_config(sdata, IEEE80211_IFCC_BSSID);
+
+               if (ret) {
+                       printk(KERN_DEBUG "%s: Failed to config new BSSID to "
+                              "the low-level driver\n", sdata->dev->name);
+                       return ret;
+               }
+       }
+
       return ieee80211_sta_set_ssid(sdata, ifsta->ssid, ifsta->ssid_len);
 }
 
--

Intel Open Source Technology Centre
http://oss.intel.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#2 lore raw

I'm going to drop this patch too.

Alina, please account for this change when reposting the original patch.

Thanks,

John

Quoted 51 lines · Sedat Dilek

Just to clarify:
The revert-patch of Alina's fix (causing regression) is no more needed?

-SD

Quoted 44 lines · Samuel Ortiz

From: Samuel Ortiz <[email protected]>

With commit e32b1b9a33759e8a83ac566c4c43f23ed5d6343b, we end up not calling config_interface() when we're in STA, but not Ad-Hoc. This breaks several drivers, and the fix is to get ieee80211_sta_set_bssid() to call ieee80211_if_config() again.

---
 net/mac80211/mlme.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

Index: wireless-testing/net/mac80211/mlme.c
===================================================================

net/mac80211/mlme.c 2009-01-23 01:36:51.000000000 +0100 renamed from net/mac80211/mlme.c 2009-01-23 01:33:54.000000000 +0100 +12 -1
@@ -2650,6 +2650,18 @@ int ieee80211_sta_set_bssid(struct ieee8
               ifsta->flags &= ~IEEE80211_STA_BSSID_SET;
       }
 
+       if (netif_running(sdata->dev)) {
+               int ret;
+
+               ret = ieee80211_if_config(sdata, IEEE80211_IFCC_BSSID);
+
+               if (ret) {
+                       printk(KERN_DEBUG "%s: Failed to config new BSSID to "
+                              "the low-level driver\n", sdata->dev->name);
+                       return ret;
+               }
+       }
+
       return ieee80211_sta_set_ssid(sdata, ifsta->ssid, ifsta->ssid_len);
 }
 
--

Intel Open Source Technology Centre
http://oss.intel.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
John W. Linville		Someday the world will need a hero, and you
[email protected]			might be all we have.  Be ready.