summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Henzl <thenzl@redhat.com>2014-11-16 14:35:33 +0100
committerChristoph Hellwig <hch@lst.de>2014-11-25 15:42:52 +0100
commitba9e5874b2f4a191cdd9de8a7ea96344458c1ab7 (patch)
tree820f168b33981b1f02f2864d9833e06b8d5738bd
parentesas2r: fir error handling in do_fm_api (diff)
downloadlinux-ba9e5874b2f4a191cdd9de8a7ea96344458c1ab7.tar.xz
linux-ba9e5874b2f4a191cdd9de8a7ea96344458c1ab7.zip
esas2r: fix an error path in esas2r_ioctl_handler
Is seems strange to manipulate nvram_semaphore when in this place, this patch fixes it. Signed-off-by: Tomas Henzl <thenzl@redhat.com> Acked-by: Bradley Grove <bgrove@attotech.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
-rw-r--r--drivers/scsi/esas2r/esas2r_ioctl.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/scsi/esas2r/esas2r_ioctl.c b/drivers/scsi/esas2r/esas2r_ioctl.c
index 9ac82075546a..c88b9f9491b5 100644
--- a/drivers/scsi/esas2r/esas2r_ioctl.c
+++ b/drivers/scsi/esas2r/esas2r_ioctl.c
@@ -1420,9 +1420,10 @@ int esas2r_ioctl_handler(void *hostdata, int cmd, void __user *arg)
rq = esas2r_alloc_request(a);
if (rq == NULL) {
- up(&a->nvram_semaphore);
- ioctl->data.prw.code = 0;
- break;
+ kfree(ioctl);
+ esas2r_log(ESAS2R_LOG_WARN,
+ "could not allocate an internal request");
+ return -ENOMEM;
}
code = esas2r_write_params(a, rq,