diff options
Diffstat (limited to 'drivers/net/wireless/rndis_wlan.c')
-rw-r--r-- | drivers/net/wireless/rndis_wlan.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c index 83f3e5282aea..620e3c0e88e0 100644 --- a/drivers/net/wireless/rndis_wlan.c +++ b/drivers/net/wireless/rndis_wlan.c | |||
@@ -1976,11 +1976,12 @@ static int rndis_scan(struct wiphy *wiphy, struct net_device *dev, | |||
1976 | return ret; | 1976 | return ret; |
1977 | } | 1977 | } |
1978 | 1978 | ||
1979 | static struct cfg80211_bss *rndis_bss_info_update(struct usbnet *usbdev, | 1979 | static bool rndis_bss_info_update(struct usbnet *usbdev, |
1980 | struct ndis_80211_bssid_ex *bssid) | 1980 | struct ndis_80211_bssid_ex *bssid) |
1981 | { | 1981 | { |
1982 | struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev); | 1982 | struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev); |
1983 | struct ieee80211_channel *channel; | 1983 | struct ieee80211_channel *channel; |
1984 | struct cfg80211_bss *bss; | ||
1984 | s32 signal; | 1985 | s32 signal; |
1985 | u64 timestamp; | 1986 | u64 timestamp; |
1986 | u16 capability; | 1987 | u16 capability; |
@@ -2019,9 +2020,12 @@ static struct cfg80211_bss *rndis_bss_info_update(struct usbnet *usbdev, | |||
2019 | capability = le16_to_cpu(fixed->capabilities); | 2020 | capability = le16_to_cpu(fixed->capabilities); |
2020 | beacon_interval = le16_to_cpu(fixed->beacon_interval); | 2021 | beacon_interval = le16_to_cpu(fixed->beacon_interval); |
2021 | 2022 | ||
2022 | return cfg80211_inform_bss(priv->wdev.wiphy, channel, bssid->mac, | 2023 | bss = cfg80211_inform_bss(priv->wdev.wiphy, channel, bssid->mac, |
2023 | timestamp, capability, beacon_interval, ie, ie_len, signal, | 2024 | timestamp, capability, beacon_interval, ie, ie_len, signal, |
2024 | GFP_KERNEL); | 2025 | GFP_KERNEL); |
2026 | cfg80211_put_bss(bss); | ||
2027 | |||
2028 | return (bss != NULL); | ||
2025 | } | 2029 | } |
2026 | 2030 | ||
2027 | static struct ndis_80211_bssid_ex *next_bssid_list_item( | 2031 | static struct ndis_80211_bssid_ex *next_bssid_list_item( |
@@ -2648,6 +2652,7 @@ static void rndis_wlan_craft_connected_bss(struct usbnet *usbdev, u8 *bssid, | |||
2648 | struct ieee80211_channel *channel; | 2652 | struct ieee80211_channel *channel; |
2649 | struct ndis_80211_conf config; | 2653 | struct ndis_80211_conf config; |
2650 | struct ndis_80211_ssid ssid; | 2654 | struct ndis_80211_ssid ssid; |
2655 | struct cfg80211_bss *bss; | ||
2651 | s32 signal; | 2656 | s32 signal; |
2652 | u64 timestamp; | 2657 | u64 timestamp; |
2653 | u16 capability; | 2658 | u16 capability; |
@@ -2721,9 +2726,10 @@ static void rndis_wlan_craft_connected_bss(struct usbnet *usbdev, u8 *bssid, | |||
2721 | bssid, (u32)timestamp, capability, beacon_interval, ie_len, | 2726 | bssid, (u32)timestamp, capability, beacon_interval, ie_len, |
2722 | ssid.essid, signal); | 2727 | ssid.essid, signal); |
2723 | 2728 | ||
2724 | cfg80211_inform_bss(priv->wdev.wiphy, channel, bssid, | 2729 | bss = cfg80211_inform_bss(priv->wdev.wiphy, channel, bssid, |
2725 | timestamp, capability, beacon_interval, ie_buf, ie_len, | 2730 | timestamp, capability, beacon_interval, ie_buf, ie_len, |
2726 | signal, GFP_KERNEL); | 2731 | signal, GFP_KERNEL); |
2732 | cfg80211_put_bss(bss); | ||
2727 | } | 2733 | } |
2728 | 2734 | ||
2729 | /* | 2735 | /* |