diff options
Diffstat (limited to 'drivers/net/wireless/at76c50x-usb.c')
-rw-r--r-- | drivers/net/wireless/at76c50x-usb.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c index 8d93ca4651b9..4efbdbe6d6bf 100644 --- a/drivers/net/wireless/at76c50x-usb.c +++ b/drivers/net/wireless/at76c50x-usb.c | |||
@@ -1965,13 +1965,18 @@ static int at76_config(struct ieee80211_hw *hw, u32 changed) | |||
1965 | return 0; | 1965 | return 0; |
1966 | } | 1966 | } |
1967 | 1967 | ||
1968 | static int at76_config_interface(struct ieee80211_hw *hw, | 1968 | static void at76_bss_info_changed(struct ieee80211_hw *hw, |
1969 | struct ieee80211_vif *vif, | 1969 | struct ieee80211_vif *vif, |
1970 | struct ieee80211_if_conf *conf) | 1970 | struct ieee80211_bss_conf *conf, |
1971 | u32 changed) | ||
1971 | { | 1972 | { |
1972 | struct at76_priv *priv = hw->priv; | 1973 | struct at76_priv *priv = hw->priv; |
1973 | 1974 | ||
1974 | at76_dbg(DBG_MAC80211, "%s():", __func__); | 1975 | at76_dbg(DBG_MAC80211, "%s():", __func__); |
1976 | |||
1977 | if (!(changed & BSS_CHANGED_BSSID)) | ||
1978 | return; | ||
1979 | |||
1975 | at76_dbg_dump(DBG_MAC80211, conf->bssid, ETH_ALEN, "bssid:"); | 1980 | at76_dbg_dump(DBG_MAC80211, conf->bssid, ETH_ALEN, "bssid:"); |
1976 | 1981 | ||
1977 | mutex_lock(&priv->mtx); | 1982 | mutex_lock(&priv->mtx); |
@@ -1983,8 +1988,6 @@ static int at76_config_interface(struct ieee80211_hw *hw, | |||
1983 | at76_join(priv); | 1988 | at76_join(priv); |
1984 | 1989 | ||
1985 | mutex_unlock(&priv->mtx); | 1990 | mutex_unlock(&priv->mtx); |
1986 | |||
1987 | return 0; | ||
1988 | } | 1991 | } |
1989 | 1992 | ||
1990 | /* must be atomic */ | 1993 | /* must be atomic */ |
@@ -2076,7 +2079,7 @@ static const struct ieee80211_ops at76_ops = { | |||
2076 | .add_interface = at76_add_interface, | 2079 | .add_interface = at76_add_interface, |
2077 | .remove_interface = at76_remove_interface, | 2080 | .remove_interface = at76_remove_interface, |
2078 | .config = at76_config, | 2081 | .config = at76_config, |
2079 | .config_interface = at76_config_interface, | 2082 | .bss_info_changed = at76_bss_info_changed, |
2080 | .configure_filter = at76_configure_filter, | 2083 | .configure_filter = at76_configure_filter, |
2081 | .start = at76_mac80211_start, | 2084 | .start = at76_mac80211_start, |
2082 | .stop = at76_mac80211_stop, | 2085 | .stop = at76_mac80211_stop, |
@@ -2250,6 +2253,7 @@ static int at76_init_new_device(struct at76_priv *priv, | |||
2250 | 2253 | ||
2251 | /* mac80211 initialisation */ | 2254 | /* mac80211 initialisation */ |
2252 | priv->hw->wiphy->max_scan_ssids = 1; | 2255 | priv->hw->wiphy->max_scan_ssids = 1; |
2256 | priv->hw->wiphy->max_scan_ie_len = 0; | ||
2253 | priv->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION); | 2257 | priv->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION); |
2254 | priv->hw->wiphy->bands[IEEE80211_BAND_2GHZ] = &at76_supported_band; | 2258 | priv->hw->wiphy->bands[IEEE80211_BAND_2GHZ] = &at76_supported_band; |
2255 | priv->hw->flags = IEEE80211_HW_RX_INCLUDES_FCS | | 2259 | priv->hw->flags = IEEE80211_HW_RX_INCLUDES_FCS | |
@@ -2311,8 +2315,7 @@ static void at76_delete_device(struct at76_priv *priv) | |||
2311 | 2315 | ||
2312 | del_timer_sync(&ledtrig_tx_timer); | 2316 | del_timer_sync(&ledtrig_tx_timer); |
2313 | 2317 | ||
2314 | if (priv->rx_skb) | 2318 | kfree_skb(priv->rx_skb); |
2315 | kfree_skb(priv->rx_skb); | ||
2316 | 2319 | ||
2317 | usb_put_dev(priv->udev); | 2320 | usb_put_dev(priv->udev); |
2318 | 2321 | ||