diff options
Diffstat (limited to 'net/wireless/util.c')
| -rw-r--r-- | net/wireless/util.c | 16 | 
1 files changed, 9 insertions, 7 deletions
| diff --git a/net/wireless/util.c b/net/wireless/util.c index 18dba3d7c638..5ff1f8726faf 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -80,6 +80,7 @@ u32 ieee80211_channel_to_freq_khz(int chan, enum nl80211_band band)  		return 0; /* not supported */  	switch (band) {  	case NL80211_BAND_2GHZ: +	case NL80211_BAND_LC:  		if (chan == 14)  			return MHZ_TO_KHZ(2484);  		else if (chan < 14) @@ -209,6 +210,7 @@ static void set_mandatory_flags_band(struct ieee80211_supported_band *sband)  		WARN_ON(want);  		break;  	case NL80211_BAND_2GHZ: +	case NL80211_BAND_LC:  		want = 7;  		for (i = 0; i < sband->n_bitrates; i++) {  			switch (sband->bitrates[i].bitrate) { @@ -1028,14 +1030,14 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,  	    !(rdev->wiphy.interface_modes & (1 << ntype)))  		return -EOPNOTSUPP; -	/* if it's part of a bridge, reject changing type to station/ibss */ -	if (netif_is_bridge_port(dev) && -	    (ntype == NL80211_IFTYPE_ADHOC || -	     ntype == NL80211_IFTYPE_STATION || -	     ntype == NL80211_IFTYPE_P2P_CLIENT)) -		return -EBUSY; -  	if (ntype != otype) { +		/* if it's part of a bridge, reject changing type to station/ibss */ +		if (netif_is_bridge_port(dev) && +		    (ntype == NL80211_IFTYPE_ADHOC || +		     ntype == NL80211_IFTYPE_STATION || +		     ntype == NL80211_IFTYPE_P2P_CLIENT)) +			return -EBUSY; +  		dev->ieee80211_ptr->use_4addr = false;  		dev->ieee80211_ptr->mesh_id_up_len = 0;  		wdev_lock(dev->ieee80211_ptr); |