mwifiex: fix NULL pointer dereference in usb suspend handler
authorBing Zhao <bzhao@marvell.com>
Wed, 25 Sep 2013 02:31:25 +0000 (19:31 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 26 Sep 2013 18:02:33 +0000 (14:02 -0400)
commit346ece0b7ba2730b4d633b9e371fe55488803102
tree4acd0edca9eebd12abcb6c4a7a5726acfc386c15
parentbd1c6142edce787b8ac1be15635f845aa9905333
mwifiex: fix NULL pointer dereference in usb suspend handler

Bug 60815 - Interface hangs in mwifiex_usb
https://bugzilla.kernel.org/show_bug.cgi?id=60815

[ 2.883807] BUG: unable to handle kernel NULL pointer dereference
            at 0000000000000048
[ 2.883813] IP: [<ffffffff815a65e0>] pfifo_fast_enqueue+0x90/0x90

[ 2.883834] CPU: 1 PID: 3220 Comm: kworker/u8:90 Not tainted
            3.11.1-monotone-l0 #6
[ 2.883834] Hardware name: Microsoft Corporation Surface with
            Windows 8 Pro/Surface with Windows 8 Pro,
            BIOS 1.03.0450 03/29/2013

On Surface Pro, suspend to ram gives a NULL pointer dereference in
pfifo_fast_enqueue(). The stack trace reveals that the offending
call is clearing carrier in mwifiex_usb suspend handler.

Since commit 1499d9f "mwifiex: don't drop carrier flag over suspend"
has removed the carrier flag handling over suspend/resume in SDIO
and PCIe drivers, I'm removing it in USB driver too. This also fixes
the bug for Surface Pro.

Cc: <stable@vger.kernel.org> # 3.5+
Tested-by: Dmitry Khromov <icechrome@gmail.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/usb.c