Message ID | 1449266674-6642-1-git-send-email-khoroshilov@ispras.ru (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Kalle Valo |
Headers | show |
On Sat, Dec 05, 2015 at 01:04:34AM +0300, Alexey Khoroshilov wrote: > If hif_read_reg() or hif_write_reg() fail in wilc_wlan_cleanup(), > it calls release_bus() and continues execution. But it leads to double > release_bus() call that means double unlock of g_linux_wlan->hif_cs mutex. > > The patch adds return in case of failure. > > Found by Linux Driver Verification project (linuxtesting.org). > > Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> > --- > drivers/staging/wilc1000/wilc_wlan.c | 2 ++ > 1 file changed, 2 insertions(+) No longer applies to my tree, can you rebase it against staging-testing and resend? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c index c02665747705..cd7f52a51173 100644 --- a/drivers/staging/wilc1000/wilc_wlan.c +++ b/drivers/staging/wilc1000/wilc_wlan.c @@ -1703,12 +1703,14 @@ void wilc_wlan_cleanup(struct net_device *dev) if (!ret) { PRINT_ER("Error while reading reg\n"); release_bus(RELEASE_ALLOW_SLEEP); + return; } PRINT_ER("Writing ABORT reg\n"); ret = p->hif_func.hif_write_reg(WILC_GP_REG_0, (reg | ABORT_INT)); if (!ret) { PRINT_ER("Error while writing reg\n"); release_bus(RELEASE_ALLOW_SLEEP); + return; } release_bus(RELEASE_ALLOW_SLEEP); /**
If hif_read_reg() or hif_write_reg() fail in wilc_wlan_cleanup(), it calls release_bus() and continues execution. But it leads to double release_bus() call that means double unlock of g_linux_wlan->hif_cs mutex. The patch adds return in case of failure. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> --- drivers/staging/wilc1000/wilc_wlan.c | 2 ++ 1 file changed, 2 insertions(+)