linux-hardened/net/wireless
Daniel Drake 1f6fc43e62 cfg80211: process pending events when unregistering net device
libertas currently calls cfg80211_disconnected() when it is being
brought down. This causes an event to be allocated, but since the
wdev is already removed from the rdev by the time that the event
processing work executes, the event is never processed or freed.
http://article.gmane.org/gmane.linux.kernel.wireless.general/95666

Fix this leak, and other possible situations, by processing the event
queue when a device is being unregistered. Thanks to Johannes Berg for
the suggestion.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Cc: stable@vger.kernel.org
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-08-06 14:29:58 -04:00
..
.gitignore wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
ap.c cfg80211: add channel tracking for AP and mesh 2012-06-29 13:39:15 +02:00
chan.c cfg80211: reduce monitor interface tracking 2012-07-13 16:16:11 +02:00
core.c cfg80211: process pending events when unregistering net device 2012-08-06 14:29:58 -04:00
core.h cfg80211: process pending events when unregistering net device 2012-08-06 14:29:58 -04:00
db.txt wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
debugfs.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
debugfs.h cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
ethtool.c cfg80211: Add framework to support ethtool stats. 2012-05-08 21:53:49 -04:00
ethtool.h net/wireless/ethtool.h: drop unnecessary include of linux/ethtool.h 2009-10-07 16:39:49 -04:00
genregdb.awk cfg80211: relicense reg.c reg.h and genregdb.awk to ISC 2012-01-04 14:30:41 -05:00
ibss.c cfg80211: respect iface combinations when starting operation 2012-06-29 13:39:19 +02:00
Kconfig cfg80211: add CONFIG_CFG80211_CERTIFICATION_ONUS 2012-07-17 12:13:51 +02:00
lib80211.c lib80211: remove exports for functions not called by other modules 2011-08-09 15:42:36 -04:00
lib80211_crypt_ccmp.c net: Convert net_ratelimit uses to net_<level>_ratelimited 2012-05-15 13:45:03 -04:00
lib80211_crypt_tkip.c net: Convert net_ratelimit uses to net_<level>_ratelimited 2012-05-15 13:45:03 -04:00
lib80211_crypt_wep.c wireless: Remove unnecessary OOM logging messages 2011-09-13 15:45:02 -04:00
Makefile cfg80211: introduce cfg80211_stop_ap 2012-06-29 13:39:14 +02:00
mesh.c cfg80211: respect iface combinations when starting operation 2012-06-29 13:39:19 +02:00
mlme.c cfg80211: support TX error rate CQM 2012-07-17 11:57:23 +02:00
nl80211.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-07-20 12:30:48 -04:00
nl80211.h cfg80211: support TX error rate CQM 2012-07-17 11:57:23 +02:00
radiotap.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
reg.c cfg80211: Clear "beacon_found" on regulatory restore 2012-08-02 15:34:22 +02:00
reg.h cfg80211: make regulatory_update() static 2012-07-17 12:16:40 +02:00
regdb.h cfg80211: relicense reg.c reg.h and genregdb.awk to ISC 2012-01-04 14:30:41 -05:00
scan.c nl80211: move scan API to wdev 2012-07-12 12:10:41 +02:00
sme.c nl80211: move scan API to wdev 2012-07-12 12:10:41 +02:00
sysfs.c mac80211: fix suspend/resume races with unregister hw 2011-08-22 14:21:40 -04:00
sysfs.h
util.c cfg80211: process pending events when unregistering net device 2012-08-06 14:29:58 -04:00
wext-compat.c cfg80211/mac80211: re-add get_channel operation 2012-07-13 16:16:11 +02:00
wext-compat.h cfg80211: remove unused wext handler exports 2011-08-08 14:26:29 -04:00
wext-core.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
wext-priv.c wext: fix potential private ioctl memory content leak 2010-09-20 13:41:40 -04:00
wext-proc.c net: spread __net_init, __net_exit 2010-01-17 19:16:02 -08:00
wext-sme.c cfg80211: clarify set_channel APIs 2012-06-06 15:18:17 -04:00
wext-spy.c wireless: Convert compare_ether_addr to ether_addr_equal 2012-05-09 20:49:19 -04:00