Subject: Re: [PATCH] d80211: Only free WEP crypto ciphers when they have been allocated correctly.

From: Gertjan van Wingerde <[email-masked]>
Date: Sat, 06 Jan 2007 19:14:27 +0100

Michael Wu wrote:
> On Saturday 06 January 2007 12:00, Gertjan van Wingerde wrote:
>   
>> The d80211 stack still tries to free the WEP crypto ciphers, even when
>> allocating them previously has failed. 
>>     
> Actually, the code might not even have tried to allocate them. The ciphers are 
> guaranteed to be allocated when the device is registered however, so we 
> should be able to free it safely on unregister.
>
> Signed-off-by: Michael Wu <[email-masked]>
> ---
>
>  net/d80211/ieee80211.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/net/d80211/ieee80211.c b/net/d80211/ieee80211.c
> index 6e10db5..926d160 100644
> --- a/net/d80211/ieee80211.c
> +++ b/net/d80211/ieee80211.c
> @@ -4715,6 +4715,7 @@ void ieee80211_unregister_hw(struct ieee
>  	skb_queue_purge(&local->skb_queue_unreliable);
>  
>  	ieee80211_dev_free_index(local);
> +	ieee80211_wep_free(local);
>  	ieee80211_led_exit(local);
>  }
>  EXPORT_SYMBOL(ieee80211_unregister_hw);
> @@ -4724,7 +4725,6 @@ void ieee80211_free_hw(struct ieee80211_
>  	struct ieee80211_local *local = hw_to_local(hw);
>  
>  	ieee80211_if_free(local->mdev);
> -	ieee80211_wep_free(local);
>  	ieee80211_dev_free(local);
>  }
>  EXPORT_SYMBOL(ieee80211_free_hw);
OK. Your patch fixes the issue I've seen as well, and seems a bit cleaner.

Acked-by: Gertjan van Wingerde <[email-masked]>