• Ganapathi Bhat's avatar
    mwifiex: do no submit URB in suspended state · 7bd4628c
    Ganapathi Bhat authored
    There is a possible race between USB suspend and main thread:
    
    1. After processing the command response, main thread will submit
    rx_cmd URB back so as to process next command response, by
    calling mwifiex_usb_submit_rx_urb.
    
    2. During USB suspend, the suspend handler will check if rx_cmd
    URB is pending(submitted) and if true, kill this URB.
    
    There is a possible race between #1 and #2, where rx_cmd URB will
    be submitted by main thread(#1) after the suspend handler check
    in #2.
    
    To fix this, check if device is already suspended in
    mwifiex_usb_submit_rx_urb, in which case do not submit the URB.
    Signed-off-by: default avatarVidya Dharmaraju <vidyad@marvell.com>
    Signed-off-by: default avatarCathy Luo <cluo@marvell.com>
    Signed-off-by: default avatarGanapathi Bhat <gbhat@marvell.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    7bd4628c
usb.c 43.9 KB