mirror of https://gitee.com/openkylin/linux.git
rndis_wlan: release BSS structures returned by cfg80211_inform_bss()
Patch fixes rndis_wlan to release referenced BSS structure returned by cfg80211_inform_bss(). Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
ef10068281
commit
a64e2e2354
|
@ -1976,11 +1976,12 @@ static int rndis_scan(struct wiphy *wiphy, struct net_device *dev,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static struct cfg80211_bss *rndis_bss_info_update(struct usbnet *usbdev,
|
||||
struct ndis_80211_bssid_ex *bssid)
|
||||
static bool rndis_bss_info_update(struct usbnet *usbdev,
|
||||
struct ndis_80211_bssid_ex *bssid)
|
||||
{
|
||||
struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
|
||||
struct ieee80211_channel *channel;
|
||||
struct cfg80211_bss *bss;
|
||||
s32 signal;
|
||||
u64 timestamp;
|
||||
u16 capability;
|
||||
|
@ -2019,9 +2020,12 @@ static struct cfg80211_bss *rndis_bss_info_update(struct usbnet *usbdev,
|
|||
capability = le16_to_cpu(fixed->capabilities);
|
||||
beacon_interval = le16_to_cpu(fixed->beacon_interval);
|
||||
|
||||
return cfg80211_inform_bss(priv->wdev.wiphy, channel, bssid->mac,
|
||||
bss = cfg80211_inform_bss(priv->wdev.wiphy, channel, bssid->mac,
|
||||
timestamp, capability, beacon_interval, ie, ie_len, signal,
|
||||
GFP_KERNEL);
|
||||
cfg80211_put_bss(bss);
|
||||
|
||||
return (bss != NULL);
|
||||
}
|
||||
|
||||
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,
|
|||
struct ieee80211_channel *channel;
|
||||
struct ndis_80211_conf config;
|
||||
struct ndis_80211_ssid ssid;
|
||||
struct cfg80211_bss *bss;
|
||||
s32 signal;
|
||||
u64 timestamp;
|
||||
u16 capability;
|
||||
|
@ -2721,9 +2726,10 @@ static void rndis_wlan_craft_connected_bss(struct usbnet *usbdev, u8 *bssid,
|
|||
bssid, (u32)timestamp, capability, beacon_interval, ie_len,
|
||||
ssid.essid, signal);
|
||||
|
||||
cfg80211_inform_bss(priv->wdev.wiphy, channel, bssid,
|
||||
bss = cfg80211_inform_bss(priv->wdev.wiphy, channel, bssid,
|
||||
timestamp, capability, beacon_interval, ie_buf, ie_len,
|
||||
signal, GFP_KERNEL);
|
||||
cfg80211_put_bss(bss);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue