Search Linux Wireless

Re: [PATCH] mac80211: fix spinlock recursion on sta expiration

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

 



On Mon, 2008-03-31 at 15:21 -0700, Luis Carlos Cobo wrote:
> Signed-off-by: Luis Carlos Cobo <luisca@xxxxxxxxxxx>

Woah. Good catch. I hope it doesn't conflict with the other fixes I just
posted.

Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>

> ---
>  net/mac80211/ieee80211_sta.c |    2 +-
>  net/mac80211/sta_info.c      |    2 +-
>  net/mac80211/sta_info.h      |    1 +
>  3 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c
> index f9cf2f1..cfe6fcc 100644
> --- a/net/mac80211/ieee80211_sta.c
> +++ b/net/mac80211/ieee80211_sta.c
> @@ -3081,7 +3081,7 @@ static void ieee80211_sta_expire(struct net_device *dev, unsigned long exp_time)
>  		if (time_after(jiffies, sta->last_rx + exp_time)) {
>  			printk(KERN_DEBUG "%s: expiring inactive STA %s\n",
>  			       dev->name, print_mac(mac, sta->addr));
> -			sta_info_unlink(&sta);
> +			__sta_info_unlink(&sta);
>  			if (sta)
>  				list_add(&sta->list, &tmp_list);
>  		}
> diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
> index f708367..ba02b43 100644
> --- a/net/mac80211/sta_info.c
> +++ b/net/mac80211/sta_info.c
> @@ -409,7 +409,7 @@ static struct sta_info *__sta_info_unpin(struct sta_info *sta)
>  	return ret;
>  }
>  
> -static void __sta_info_unlink(struct sta_info **sta)
> +void __sta_info_unlink(struct sta_info **sta)
>  {
>  	struct ieee80211_local *local = (*sta)->local;
>  	struct ieee80211_sub_if_data *sdata = (*sta)->sdata;
> diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
> index 5e39a41..d4d6dcb 100644
> --- a/net/mac80211/sta_info.h
> +++ b/net/mac80211/sta_info.h
> @@ -347,6 +347,7 @@ int sta_info_insert(struct sta_info *sta);
>   * has already unlinked it.
>   */
>  void sta_info_unlink(struct sta_info **sta);
> +void __sta_info_unlink(struct sta_info **sta);
>  
>  void sta_info_destroy(struct sta_info *sta);
>  void sta_info_set_tim_bit(struct sta_info *sta);

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