Search Linux Wireless

Re: [PATCH 1/1] mac80211: fix ieee80211_rx_bss_put/get imbalance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2008-05-21 at 18:17 +0300, Tomas Winkler wrote:
> This patch fixes iee80211_rx_bss_put/get imbalance
> introduced by 'mac80211: enable IBSS merging' patch.
> 
> Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>

Looks correct to me.

Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>

John, when will you start merging real work again? :)


> ---
>  net/mac80211/mlme.c |   12 ++++++++----
>  1 files changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> index 7cfd12e..0ef5993 100644
> --- a/net/mac80211/mlme.c
> +++ b/net/mac80211/mlme.c
> @@ -2479,8 +2479,6 @@ static int ieee80211_sta_join_ibss(struct net_device *dev,
>  	ifsta->state = IEEE80211_IBSS_JOINED;
>  	mod_timer(&ifsta->timer, jiffies + IEEE80211_IBSS_MERGE_INTERVAL);
>  
> -	ieee80211_rx_bss_put(dev, bss);
> -
>  	return res;
>  }
>  
> @@ -3523,6 +3521,7 @@ static int ieee80211_sta_create_ibss(struct net_device *dev,
>  	struct ieee80211_supported_band *sband;
>  	u8 bssid[ETH_ALEN], *pos;
>  	int i;
> +	int ret;
>  	DECLARE_MAC_BUF(mac);
>  
>  #if 0
> @@ -3567,7 +3566,9 @@ static int ieee80211_sta_create_ibss(struct net_device *dev,
>  		*pos++ = (u8) (rate / 5);
>  	}
>  
> -	return ieee80211_sta_join_ibss(dev, ifsta, bss);
> +	ret = ieee80211_sta_join_ibss(dev, ifsta, bss);
> +	ieee80211_rx_bss_put(dev, bss);
> +	return ret;
>  }
>  
> 
> @@ -3615,10 +3616,13 @@ static int ieee80211_sta_find_ibss(struct net_device *dev,
>  	    (bss = ieee80211_rx_bss_get(dev, bssid,
>  					local->hw.conf.channel->center_freq,
>  					ifsta->ssid, ifsta->ssid_len))) {
> +		int ret;
>  		printk(KERN_DEBUG "%s: Selected IBSS BSSID %s"
>  		       " based on configured SSID\n",
>  		       dev->name, print_mac(mac, bssid));
> -		return ieee80211_sta_join_ibss(dev, ifsta, bss);
> +		ret = ieee80211_sta_join_ibss(dev, ifsta, bss);
> +		ieee80211_rx_bss_put(dev, bss);
> +		return ret;
>  	}
>  #ifdef CONFIG_MAC80211_IBSS_DEBUG
>  	printk(KERN_DEBUG "   did not try to join ibss\n");

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux