Loading net/mac80211/cfg.c +35 −35 Original line number Diff line number Diff line Loading @@ -674,6 +674,41 @@ static int ieee80211_get_station(struct wiphy *wiphy, struct net_device *dev, return ret; } static int ieee80211_set_channel(struct wiphy *wiphy, struct net_device *netdev, struct ieee80211_channel *chan, enum nl80211_channel_type channel_type) { struct ieee80211_local *local = wiphy_priv(wiphy); struct ieee80211_sub_if_data *sdata = NULL; if (netdev) sdata = IEEE80211_DEV_TO_SUB_IF(netdev); switch (ieee80211_get_channel_mode(local, NULL)) { case CHAN_MODE_HOPPING: return -EBUSY; case CHAN_MODE_FIXED: if (local->oper_channel != chan) return -EBUSY; if (!sdata && local->_oper_channel_type == channel_type) return 0; break; case CHAN_MODE_UNDEFINED: break; } if (!ieee80211_set_channel_type(local, sdata, channel_type)) return -EBUSY; local->oper_channel = chan; /* auto-detects changes */ ieee80211_hw_config(local, 0); return 0; } static int ieee80211_set_probe_resp(struct ieee80211_sub_if_data *sdata, const u8 *resp, size_t resp_len) { Loading Loading @@ -1677,41 +1712,6 @@ static int ieee80211_set_txq_params(struct wiphy *wiphy, return 0; } static int ieee80211_set_channel(struct wiphy *wiphy, struct net_device *netdev, struct ieee80211_channel *chan, enum nl80211_channel_type channel_type) { struct ieee80211_local *local = wiphy_priv(wiphy); struct ieee80211_sub_if_data *sdata = NULL; if (netdev) sdata = IEEE80211_DEV_TO_SUB_IF(netdev); switch (ieee80211_get_channel_mode(local, NULL)) { case CHAN_MODE_HOPPING: return -EBUSY; case CHAN_MODE_FIXED: if (local->oper_channel != chan) return -EBUSY; if (!sdata && local->_oper_channel_type == channel_type) return 0; break; case CHAN_MODE_UNDEFINED: break; } if (!ieee80211_set_channel_type(local, sdata, channel_type)) return -EBUSY; local->oper_channel = chan; /* auto-detects changes */ ieee80211_hw_config(local, 0); return 0; } #ifdef CONFIG_PM static int ieee80211_suspend(struct wiphy *wiphy, struct cfg80211_wowlan *wowlan) Loading Loading
net/mac80211/cfg.c +35 −35 Original line number Diff line number Diff line Loading @@ -674,6 +674,41 @@ static int ieee80211_get_station(struct wiphy *wiphy, struct net_device *dev, return ret; } static int ieee80211_set_channel(struct wiphy *wiphy, struct net_device *netdev, struct ieee80211_channel *chan, enum nl80211_channel_type channel_type) { struct ieee80211_local *local = wiphy_priv(wiphy); struct ieee80211_sub_if_data *sdata = NULL; if (netdev) sdata = IEEE80211_DEV_TO_SUB_IF(netdev); switch (ieee80211_get_channel_mode(local, NULL)) { case CHAN_MODE_HOPPING: return -EBUSY; case CHAN_MODE_FIXED: if (local->oper_channel != chan) return -EBUSY; if (!sdata && local->_oper_channel_type == channel_type) return 0; break; case CHAN_MODE_UNDEFINED: break; } if (!ieee80211_set_channel_type(local, sdata, channel_type)) return -EBUSY; local->oper_channel = chan; /* auto-detects changes */ ieee80211_hw_config(local, 0); return 0; } static int ieee80211_set_probe_resp(struct ieee80211_sub_if_data *sdata, const u8 *resp, size_t resp_len) { Loading Loading @@ -1677,41 +1712,6 @@ static int ieee80211_set_txq_params(struct wiphy *wiphy, return 0; } static int ieee80211_set_channel(struct wiphy *wiphy, struct net_device *netdev, struct ieee80211_channel *chan, enum nl80211_channel_type channel_type) { struct ieee80211_local *local = wiphy_priv(wiphy); struct ieee80211_sub_if_data *sdata = NULL; if (netdev) sdata = IEEE80211_DEV_TO_SUB_IF(netdev); switch (ieee80211_get_channel_mode(local, NULL)) { case CHAN_MODE_HOPPING: return -EBUSY; case CHAN_MODE_FIXED: if (local->oper_channel != chan) return -EBUSY; if (!sdata && local->_oper_channel_type == channel_type) return 0; break; case CHAN_MODE_UNDEFINED: break; } if (!ieee80211_set_channel_type(local, sdata, channel_type)) return -EBUSY; local->oper_channel = chan; /* auto-detects changes */ ieee80211_hw_config(local, 0); return 0; } #ifdef CONFIG_PM static int ieee80211_suspend(struct wiphy *wiphy, struct cfg80211_wowlan *wowlan) Loading