mwifiex: do no submit URB in suspended state
authorGanapathi Bhat <gbhat@marvell.com>
Tue, 21 Aug 2018 07:53:01 +0000 (13:23 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 31 Aug 2018 15:46:53 +0000 (18:46 +0300)
commit7bd4628c2f31c51254aa39628ecae521d00d0b90
tree9ada4404ce1058d7c1403d87fea6e6572fde0580
parent199ba9faca909e77ac533449ecd1248123ce89e7
mwifiex: do no submit URB in suspended state

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: Vidya Dharmaraju <vidyad@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/usb.c