[PATCH] libertas: release bss references and avoid warning from cfg80211_inform_bss
Dan Williams
dcbw at redhat.com
Mon Nov 14 17:09:21 EST 2011
On Fri, 2011-11-11 at 13:53 -0500, John W. Linville wrote:
> CC [M] drivers/net/wireless/libertas/cfg.o
> drivers/net/wireless/libertas/cfg.c: In function ‘lbs_ret_scan’:
> drivers/net/wireless/libertas/cfg.c:636:24: warning: ignoring return value of ‘cfg80211_inform_bss’, declared with attribute warn_unused_result
> drivers/net/wireless/libertas/cfg.c: In function ‘lbs_join_post’:
> drivers/net/wireless/libertas/cfg.c:1766:21: warning: ignoring return value of ‘cfg80211_inform_bss’, declared with attribute warn_unused_result
>
> Signed-off-by: John W. Linville <linville at tuxdriver.com>
Acked-by: Dan Williams <dcbw at redhat.com>
> ---
> drivers/net/wireless/libertas/cfg.c | 25 +++++++++++++++----------
> 1 files changed, 15 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
> index 4fcd653..89f34ad 100644
> --- a/drivers/net/wireless/libertas/cfg.c
> +++ b/drivers/net/wireless/libertas/cfg.c
> @@ -485,6 +485,7 @@ static int lbs_cfg_set_channel(struct wiphy *wiphy,
> static int lbs_ret_scan(struct lbs_private *priv, unsigned long dummy,
> struct cmd_header *resp)
> {
> + struct cfg80211_bss *bss;
> struct cmd_ds_802_11_scan_rsp *scanresp = (void *)resp;
> int bsssize;
> const u8 *pos;
> @@ -632,12 +633,14 @@ static int lbs_ret_scan(struct lbs_private *priv, unsigned long dummy,
> LBS_SCAN_RSSI_TO_MBM(rssi)/100);
>
> if (channel &&
> - !(channel->flags & IEEE80211_CHAN_DISABLED))
> - cfg80211_inform_bss(wiphy, channel,
> + !(channel->flags & IEEE80211_CHAN_DISABLED)) {
> + bss = cfg80211_inform_bss(wiphy, channel,
> bssid, le64_to_cpu(*(__le64 *)tsfdesc),
> capa, intvl, ie, ielen,
> LBS_SCAN_RSSI_TO_MBM(rssi),
> GFP_KERNEL);
> + cfg80211_put_bss(bss);
> + }
> } else
> lbs_deb_scan("scan response: missing BSS channel IE\n");
>
> @@ -1720,6 +1723,7 @@ static void lbs_join_post(struct lbs_private *priv,
> 2 + 2 + /* atim */
> 2 + 8]; /* extended rates */
> u8 *fake = fake_ie;
> + struct cfg80211_bss *bss;
>
> lbs_deb_enter(LBS_DEB_CFG80211);
>
> @@ -1763,14 +1767,15 @@ static void lbs_join_post(struct lbs_private *priv,
> *fake++ = 0x6c;
> lbs_deb_hex(LBS_DEB_CFG80211, "IE", fake_ie, fake - fake_ie);
>
> - cfg80211_inform_bss(priv->wdev->wiphy,
> - params->channel,
> - bssid,
> - 0,
> - capability,
> - params->beacon_interval,
> - fake_ie, fake - fake_ie,
> - 0, GFP_KERNEL);
> + bss = cfg80211_inform_bss(priv->wdev->wiphy,
> + params->channel,
> + bssid,
> + 0,
> + capability,
> + params->beacon_interval,
> + fake_ie, fake - fake_ie,
> + 0, GFP_KERNEL);
> + cfg80211_put_bss(bss);
>
> memcpy(priv->wdev->ssid, params->ssid, params->ssid_len);
> priv->wdev->ssid_len = params->ssid_len;
More information about the libertas-dev
mailing list