[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