mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 3/4] rsxx: Correcting return values during failure scenarios.
@ 2013-07-23 20:19 Philip J. Kelleher
  0 siblings, 0 replies; 2+ messages in thread
From: Philip J. Kelleher @ 2013-07-23 20:19 UTC (permalink / raw)
  To: axboe; +Cc: linux-kernel

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;
 	}
 


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH 3/4] rsxx: Correcting return values during failure scenarios.
@ 2013-08-06 21:11 Philip J. Kelleher
  0 siblings, 0 replies; 2+ messages in thread
From: Philip J. Kelleher @ 2013-08-06 21:11 UTC (permalink / raw)
  To: axboe; +Cc: linux-kernel

From: Philip J Kelleher <pjk1939@linux.vnet.ibm.com>

The rsxx 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;
 	}
 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-08-06 21:12 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-23 20:19 [PATCH 3/4] rsxx: Correcting return values during failure scenarios Philip J. Kelleher
2013-08-06 21:11 Philip J. Kelleher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®