On Thu, May 03, 2012 at 11:54:29AM -0500, Larry Finger wrote: > On 05/03/2012 03:47 AM, Catalin Marinas wrote: > > > >IIUC, Paul suggested that you should use rcu_dereference_check() here > >instead as the protected one is not safe in this context. > > This patch also fails to fix the problem. Did I do what Paul suggested? That is indeed what I suggested! What locks does lockdep say are held? Thanx, Paul > Index: wireless-testing-new/net/mac80211/sta_info.h > =================================================================== > --- wireless-testing-new.orig/net/mac80211/sta_info.h > +++ wireless-testing-new/net/mac80211/sta_info.h > @@ -452,7 +452,7 @@ void ieee80211_assign_tid_tx(struct sta_ > static inline struct tid_ampdu_tx * > rcu_dereference_protected_tid_tx(struct sta_info *sta, int tid) > { > - return rcu_dereference_protected(sta->ampdu_mlme.tid_tx[tid], > + return rcu_dereference_check(sta->ampdu_mlme.tid_tx[tid], > lockdep_is_held(&sta->lock) || > lockdep_is_held(&sta->ampdu_mlme.mtx)); > } > -- 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