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? 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