diff --git a/net/mac80211/key.c b/net/mac80211/key.c index ccd676b2f5999b6779e02903b853e838c8836612..aa1b734a5e998aee4d8baace2e4f6a58211202c3 100644 --- a/net/mac80211/key.c +++ b/net/mac80211/key.c @@ -366,6 +366,12 @@ static void __ieee80211_key_destroy(struct ieee80211_key *key) if (!key) return; + /* + * Synchronize so the TX path can no longer be using + * this key before we free/remove it. + */ + synchronize_rcu(); + if (key->local) ieee80211_key_disable_hw_accel(key);