mwifiex: fix racing condition when downloading firmware
authorWei-Ning Huang <wnhuang@chromium.org>
Thu, 19 May 2016 03:53:43 +0000 (11:53 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 14 Jun 2016 14:24:16 +0000 (17:24 +0300)
commit65c71efe1c59c111a7b9e6d9540f111663b975b2
treece8c7ded4ae371d1cd6c545c5d64df3423b43688
parent6b128a01c67301a4733138f94ca581c706277ef5
mwifiex: fix racing condition when downloading firmware

The action 'check for winner' and 'download firmware' should be an
atomic action. This is true for btmrvl driver but not mwmfiex, which
cause firmware download to fail when the following senerio happens:

1) mwifiex check winner status: true
2) btmrvl check winner status: true, and start downloading firmware
3) mwfieix tries to download firmware, but failed because btmrvl is
already downloading.

This won't happen if 1) and 3) is an atomic action. This patch adds
sdio_claim/release_host call around those two actions to make sure it's
atomic.

Signed-off-by: Wei-Ning Huang <wnhuang@chromium.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/main.c