From: Alexey Khoroshilov Date: Mon, 18 Nov 2013 21:45:08 +0000 (+0400) Subject: libertas sdio: claim device before calling sdio_disable_func() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=eddc633a3abcffbbe2fb1eb460670f0c63b11211;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git 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 Signed-off-by: John W. Linville --- 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;