Search Linux Wireless

Re: [PATCH V2] mac80211: Fixing sparse warning at sta_info.c

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

 



Applying: mac80211: Fixing sparse warning at sta_info.c
error: patch failed: net/mac80211/sta_info.c:974
error: net/mac80211/sta_info.c: patch does not apply

What tree did you use as a base for your patch?

On Fri, Dec 16, 2011 at 11:47:15AM +0530, Yogesh Ashok Powar wrote:
> The commit 42624d4913a00219a8fdbb4bafd634d1d843be85
> created following sparse warning
> >net/mac80211/sta_info.c:965:24: warning: incorrect type in assignment (different address spaces)
> >net/mac80211/sta_info.c:965:24:    expected struct tid_ampdu_tx *tid_tx
> >net/mac80211/sta_info.c:965:24:    got struct tid_ampdu_tx [noderef] <asn:4>*<noident>
> 
> Making use of rcu_dereference_protected to fix the problem.
> 
> V2:
>  - Replacing rcu_dereference with rcu_dereference_protected
>    as suggested by Johannes.
>  - Adding mutex_lock/unlock to satisfy the condition at
>    rcu_dereference_protected
> 
> Cc: Nishant Sarmukadam <nishants@xxxxxxxxxxx>
> Reported-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>
> Signed-off-by: Yogesh Ashok Powar <yogeshp@xxxxxxxxxxx>
> ---
>  net/mac80211/sta_info.c |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
> index c6ca9bd..e4307b7 100644
> --- a/net/mac80211/sta_info.c
> +++ b/net/mac80211/sta_info.c
> @@ -959,10 +959,13 @@ static int __must_check __sta_info_destroy(struct sta_info *sta)
>  	 * until the aggregation stop completes. Refer
>  	 * http://thread.gmane.org/gmane.linux.kernel.wireless.general/81936
>  	 */
> +
> +	mutex_lock(&sta->ampdu_mlme.mtx);
> +
>  	for (i = 0; i < STA_TID_NUM; i++) {
> -		if (!sta->ampdu_mlme.tid_tx[i])
> +		tid_tx = rcu_dereference_protected_tid_tx(sta, i);
> +		if (!tid_tx)
>  			continue;
> -		tid_tx = sta->ampdu_mlme.tid_tx[i];
>  		if (skb_queue_len(&tid_tx->pending)) {
>  #ifdef CONFIG_MAC80211_HT_DEBUG
>  			wiphy_debug(local->hw.wiphy, "TX A-MPDU  purging %d "
> @@ -974,6 +977,8 @@ static int __must_check __sta_info_destroy(struct sta_info *sta)
>  		kfree_rcu(tid_tx, rcu_head);
>  	}
>  
> +	mutex_unlock(&sta->ampdu_mlme.mtx);
> +
>  	__sta_info_free(local, sta);
>  
>  	return 0;
> -- 
> 1.7.5.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 
John W. Linville		Someday the world will need a hero, and you
linville@xxxxxxxxxxxxx			might be all we have.  Be ready.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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