aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/wilc1000
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2018-12-21 12:12:02 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-01-15 16:31:09 +0100
commit0a9019cc8ae0caf97d3d914d178e31ffd37cc48e (patch)
tree44faadb45ef836fec764336a49d0fb499b867c59 /drivers/staging/wilc1000
parentstaging: wilc1000: fix memory leak in wilc_add_rx_gtk (diff)
downloadlinux-dev-0a9019cc8ae0caf97d3d914d178e31ffd37cc48e.tar.xz
linux-dev-0a9019cc8ae0caf97d3d914d178e31ffd37cc48e.zip
Staging: wilc1000: unlock on error in init_chip()
When there is an error in init_bus() then we need to call release_bus() before we return. Fixes: c5c77ba18ea6 ("staging: wilc1000: Add SDIO/SPI 802.11 driver") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/wilc1000')
-rw-r--r--drivers/staging/wilc1000/wilc_wlan.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 3c5e9e030cad..489e5a5038f8 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -1252,21 +1252,22 @@ static u32 init_chip(struct net_device *dev)
ret = wilc->hif_func->hif_read_reg(wilc, 0x1118, &reg);
if (!ret) {
netdev_err(dev, "fail read reg 0x1118\n");
- return ret;
+ goto release;
}
reg |= BIT(0);
ret = wilc->hif_func->hif_write_reg(wilc, 0x1118, reg);
if (!ret) {
netdev_err(dev, "fail write reg 0x1118\n");
- return ret;
+ goto release;
}
ret = wilc->hif_func->hif_write_reg(wilc, 0xc0000, 0x71);
if (!ret) {
netdev_err(dev, "fail write reg 0xc0000\n");
- return ret;
+ goto release;
}
}
+release:
release_bus(wilc, WILC_BUS_RELEASE_ONLY);
return ret;