Search Linux Wireless

iwlwifi: bad error case cleanup for startup failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If the iwlwifi firmware loading calling iwl_ucode_callback() fails to
start up the wireless driver - which will happen if CONFIG_PM is not
enabled due to a mac80211 bug - iwlwifi will incorrectly try to
release the firmware twice.

It already released the firmware and completed the firmware loading
event after copying it to the internal driver buffers, if the driver
startup fails it should not try to release it again.

The double release causes very nasty vmalloc() corruption, and results
in some rather non-obvious page faults. To make matters worse, this
happens within the context of the firmware loader callback, usually a
kworker thread - and the killing of that thread then causes further
problems, making the original issue very hard to discern.

The attached patch seems to fix it.

                   Linus

Attachment: iwlwifi.patch
Description: Binary data


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux