lkml.org 
[lkml]   [2013]   [Jul]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 3/4] rsxx: Correcting return values during failure scenarios.
From: Philip J Kelleher <pjk1939@linux.vnet.ibm.com>

The driver is returning the wrong values during
copy_from_user and copy_to_user. It, also, is not
setting ENOMEM during a failed workqueue allocation.

Signed-off-by: Philip J Kelleher <pjk1939@linux.vnet.ibm.com>
-------------------------------------------------------------------------------


diff -uprN -X linux-block-vanilla/Documentation/dontdiff linux-block-vanilla/drivers/block/rsxx/core.c linux-block/drivers/block/rsxx/core.c
--- linux-block-vanilla/drivers/block/rsxx/core.c 2013-07-23 10:43:46.182724965 -0500
+++ linux-block/drivers/block/rsxx/core.c 2013-07-23 10:46:25.646465285 -0500
@@ -199,9 +199,8 @@ static ssize_t rsxx_cram_read(struct fil
if (st)
return st;

- st = copy_to_user(ubuf, buf, cnt);
- if (st)
- return st;
+ if (copy_to_user(ubuf, buf, cnt))
+ return -EFAULT;

info->offset += cnt;

@@ -222,9 +221,8 @@ static ssize_t rsxx_cram_write(struct fi
if (!buf)
return -ENOMEM;

- st = copy_from_user(buf, ubuf, cnt);
- if (st)
- return st;
+ if (copy_from_user(buf, ubuf, cnt))
+ return -EFAULT;

info->f_pos = (u32)*ppos + info->offset;

@@ -946,6 +944,7 @@ static int rsxx_pci_probe(struct pci_dev
card->event_wq = create_singlethread_workqueue(DRIVER_NAME"_event");
if (!card->event_wq) {
dev_err(CARD_TO_DEV(card), "Failed card event setup.\n");
+ st = -ENOMEM;
goto failed_event_handler;
}



\
 
 \ /
  Last update: 2013-07-23 23:21    [W:0.059 / U:0.824 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site