aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rsi/rsi_91x_usb.c
diff options
context:
space:
mode:
authorPrameela Rani Garnepudi <prameela.j04cs@gmail.com>2017-05-16 15:31:12 +0530
committerKalle Valo <kvalo@codeaurora.org>2017-05-24 16:37:50 +0300
commitea3336ac0094b9d461fdde22127087ee293e609a (patch)
tree153c056853622126ebaf7613b8732cd463cacd0e /drivers/net/wireless/rsi/rsi_91x_usb.c
parentrsi: use macros in USB specific code (diff)
downloadlinux-dev-ea3336ac0094b9d461fdde22127087ee293e609a.tar.xz
linux-dev-ea3336ac0094b9d461fdde22127087ee293e609a.zip
rsi: Handle usb multi-byte write failure case properly
In function usb_write_register_multiple, if any intermediate block transfer is failed, further operations should be terminated. 'else' is removed, as there is no significance for it after return. Signed-off-by: Prameela Rani Garnepudi <prameela.j04cs@gmail.com> Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/rsi/rsi_91x_usb.c')
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_usb.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/wireless/rsi/rsi_91x_usb.c b/drivers/net/wireless/rsi/rsi_91x_usb.c
index 9e1359a204fc..a900a7288acb 100644
--- a/drivers/net/wireless/rsi/rsi_91x_usb.c
+++ b/drivers/net/wireless/rsi/rsi_91x_usb.c
@@ -316,11 +316,12 @@ int rsi_usb_write_register_multiple(struct rsi_hw *adapter,
rsi_dbg(ERR_ZONE,
"Reg write failed with error code :%d\n",
status);
- } else {
- count -= transfer;
- data += transfer;
- addr += transfer;
+ kfree(buf);
+ return status;
}
+ count -= transfer;
+ data += transfer;
+ addr += transfer;
}
kfree(buf);