• Bing Zhao's avatar
    mwifiex: fix NULL pointer dereference in usb suspend handler · 346ece0b
    Bing Zhao authored
    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 1499d9fa "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: default avatarDmitry Khromov <icechrome@gmail.com>
    Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    346ece0b
usb.c 27.1 KB