Re: mac80211 ad-hoc: carrier not set up [was: Panic in ieee_80211_ibss_add_sta]
From: Ivo van Doorn <hidden>
Date: 2007-05-15 22:01:11
Also in:
linux-wireless
Hi,
However, ad-hoc still does not work, since the network device's carrier status does not seem to be properly set. (It remains in NO-CARRIER even after "wlan0: Selected IBSS BSSID 92:68:a2:db:de:45 based on configured SSID". I dirtily hacked around that with the following two-liner:
I was aware of the recent rt2x00 adhoc breakage but hadn't looked into it yet, the below suggestion about the netif_carrier does make sense though, since the last report it was working was before rt2x00 removed the ieee80211_netif calls, and the first report of its breakage was some time after the removal. (Since a lot of code has been moved around in between the ieee80211_netif wasn't the first thing that I would have thought of as a probable cause. ;) )
quoted hunk ↗ jump to hunk
--- wireless-dev/net/mac80211/ieee80211_sta.c.orig 2007-05-15 20:19:55.000000000 +0200 +++ wireless-dev/net/mac80211/ieee80211_sta.c 2007-05-15 21:19:38.362587215 +0200@@ -2448,6 +2448,7 @@ mod_timer(&ifsta->timer, jiffies + IEEE80211_IBSS_MERGE_INTERVAL); ieee80211_rx_bss_put(dev, bss); + netif_carrier_on(dev); return res; }@@ -2648,6 +2649,7 @@ ifsta->ssid_set = len ? 1 : 0; if (sdata->type == IEEE80211_IF_TYPE_IBSS && !ifsta->bssid_set) { + netif_carrier_off(dev); ifsta->ibss_join_req = jiffies; ifsta->state = IEEE80211_IBSS_SEARCH; return ieee80211_sta_find_ibss(dev, ifsta);However, I have NO CLUE WHAT I'M DOING THERE! Make a proper fix! (Especially, I think it needs more netif_carrier_off calls in different places.) Anyway, thanks for my now-working wireless,
Ivo