aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorJohannes Berg2012-06-05 19:56:06 +0200
committerJohn W. Linville2012-06-05 14:27:29 -0400
commitf69a23b795d6ee3673583146ed7efcbaaa5add18 (patch)
treefdf77d4e1d59490a1f5c1584cb853a3fe32c8255 /kernel
parentfcb6ff5e2cb83e1de10631f6621f45ca3401bf61 (diff)
iwlwifi: fix double free/complete in firmware loading
Linus reported that due to mac80211 failing to register the device (due to WoWLAN) his machine crashed etc. as we double-freed the vmalloc() firmware area. His patch to fix it was very similar to this one but I noticed that there's another bug in the area: we complete the completion before starting, so since we're running in a work struct context stop() could be called while in the middle of start() which will almost certainly lead to issues. Make a modification similar to his to avoid the double- free but also move the completion to another spot so it is only done after start() either finished or failed so that stop() can have a consistent state. Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions