From: "Sachin Shukla" <[email protected]>

There is no need to call kfree() if memdup_user() fails, as no memory
was allocated and the error in the error-valued pointer should be returned.

Signed-off-by: Sachin Shukla <[email protected]>
---
 drivers/block/mtip32xx/mtip32xx.c |   14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/block/mtip32xx/mtip32xx.c 
b/drivers/block/mtip32xx/mtip32xx.c
index 3cfd879..68e332b 100644
--- a/drivers/block/mtip32xx/mtip32xx.c
+++ b/drivers/block/mtip32xx/mtip32xx.c
@@ -2035,18 +2035,14 @@ static int exec_drive_taskfile(struct driver_data *dd,
        taskout = req_task->out_size;
        taskin = req_task->in_size;
        /* 130560 = 512 * 0xFF*/
-       if (taskin > 130560 || taskout > 130560) {
-               err = -EINVAL;
-               goto abort;
-       }
+       if (taskin > 130560 || taskout > 130560)
+               return -EINVAL;
 
        if (taskout) {
                outbuf = memdup_user(buf + outtotal, taskout);
-               if (IS_ERR(outbuf)) {
-                       err = PTR_ERR(outbuf);
-                       outbuf = NULL;
-                       goto abort;
-               }
+               if (IS_ERR(outbuf))
+                       return PTR_ERR(outbuf);
+
                outbuf_dma = pci_map_single(dd->pdev,
                                         outbuf,
                                         taskout,
-- 
1.7.9.5

Reply via email to