OSDN Git Service

mac80211: fix a kernel panic when TXing after TXQ teardown
authorSara Sharon <sara.sharon@intel.com>
Sat, 15 Dec 2018 09:03:10 +0000 (11:03 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 18 Dec 2018 12:03:32 +0000 (13:03 +0100)
commita50e5fb8db83c5b57392204c21ea6c5c4ccefde6
treecbffbae9790f918f7ac323268a6e1148488670a9
parenta5f3932646a74e690ed532a1f421f75c3b8cf1ec
mac80211: fix a kernel panic when TXing after TXQ teardown

Recently TXQ teardown was moved earlier in ieee80211_unregister_hw(),
to avoid a use-after-free of the netdev data. However, interfaces
aren't fully removed at the point, and cfg80211_shutdown_all_interfaces
can for example, TX a deauth frame. Move the TXQ teardown to the
point between cfg80211_shutdown_all_interfaces and the free of
netdev queues, so we can be sure they are torn down before netdev
is freed, but after there is no ongoing TX.

Fixes: 77cfaf52eca5 ("mac80211: Run TXQ teardown code before de-registering interfaces")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/iface.c
net/mac80211/main.c