diff options
author | Alexey Khoroshilov <khoroshilov@ispras.ru> | 2013-11-19 01:45:08 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-12-05 14:56:24 -0500 |
commit | eddc633a3abcffbbe2fb1eb460670f0c63b11211 (patch) | |
tree | aa82664889dff06ea5cfe1cc95f66af7e2d8894f /drivers/net/wireless/libertas | |
parent | 18a7424f8c76ff7acdda49e4346571cc2a69b7f9 (diff) |
libertas sdio: claim device before calling sdio_disable_func()
There is a failure path in if_sdio_power_on(), where
sdio_disable_func() is called without claiming the device.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas')
-rw-r--r-- | drivers/net/wireless/libertas/if_sdio.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c index 828e7f4fc633..58c6ee5de98f 100644 --- a/drivers/net/wireless/libertas/if_sdio.c +++ b/drivers/net/wireless/libertas/if_sdio.c @@ -907,8 +907,8 @@ static int if_sdio_power_on(struct if_sdio_card *card) sdio_release_host(func); ret = if_sdio_prog_firmware(card); if (ret) { - sdio_disable_func(func); - return ret; + sdio_claim_host(func); + goto disable; } return 0; |