mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
mac80211: set carrier_on for ibss vifs only while joined
mac80211 should set carrier_on for ibss vifs only while they are joined (similar to sta vifs) Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
94e2ad9ee4
commit
86a2ea4134
@ -97,6 +97,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
|
|||||||
/* if merging, indicate to driver that we leave the old IBSS */
|
/* if merging, indicate to driver that we leave the old IBSS */
|
||||||
if (sdata->vif.bss_conf.ibss_joined) {
|
if (sdata->vif.bss_conf.ibss_joined) {
|
||||||
sdata->vif.bss_conf.ibss_joined = false;
|
sdata->vif.bss_conf.ibss_joined = false;
|
||||||
|
netif_carrier_off(sdata->dev);
|
||||||
ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_IBSS);
|
ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_IBSS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,6 +208,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
|
|||||||
bss = cfg80211_inform_bss_frame(local->hw.wiphy, local->hw.conf.channel,
|
bss = cfg80211_inform_bss_frame(local->hw.wiphy, local->hw.conf.channel,
|
||||||
mgmt, skb->len, 0, GFP_KERNEL);
|
mgmt, skb->len, 0, GFP_KERNEL);
|
||||||
cfg80211_put_bss(bss);
|
cfg80211_put_bss(bss);
|
||||||
|
netif_carrier_on(sdata->dev);
|
||||||
cfg80211_ibss_joined(sdata->dev, ifibss->bssid, GFP_KERNEL);
|
cfg80211_ibss_joined(sdata->dev, ifibss->bssid, GFP_KERNEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -990,6 +992,7 @@ int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sta_info_flush(sdata->local, sdata);
|
sta_info_flush(sdata->local, sdata);
|
||||||
|
netif_carrier_off(sdata->dev);
|
||||||
|
|
||||||
/* remove beacon */
|
/* remove beacon */
|
||||||
kfree(sdata->u.ibss.ie);
|
kfree(sdata->u.ibss.ie);
|
||||||
|
@ -293,7 +293,8 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
|
|||||||
changed |= ieee80211_reset_erp_info(sdata);
|
changed |= ieee80211_reset_erp_info(sdata);
|
||||||
ieee80211_bss_info_change_notify(sdata, changed);
|
ieee80211_bss_info_change_notify(sdata, changed);
|
||||||
|
|
||||||
if (sdata->vif.type == NL80211_IFTYPE_STATION)
|
if (sdata->vif.type == NL80211_IFTYPE_STATION ||
|
||||||
|
sdata->vif.type == NL80211_IFTYPE_ADHOC)
|
||||||
netif_carrier_off(dev);
|
netif_carrier_off(dev);
|
||||||
else
|
else
|
||||||
netif_carrier_on(dev);
|
netif_carrier_on(dev);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user