]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Jul 2014 03:07:05 +0000 (20:07 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Jul 2014 03:07:05 +0000 (20:07 -0700)
added patches:
ibmvscsi-abort-init-sequence-during-error-recovery.patch

queue-3.4/ibmvscsi-abort-init-sequence-during-error-recovery.patch [new file with mode: 0644]
queue-3.4/series

diff --git a/queue-3.4/ibmvscsi-abort-init-sequence-during-error-recovery.patch b/queue-3.4/ibmvscsi-abort-init-sequence-during-error-recovery.patch
new file mode 100644 (file)
index 0000000..dca470a
--- /dev/null
@@ -0,0 +1,36 @@
+From 9ee755974bea2f9880e517ec985dc9dede1b3a36 Mon Sep 17 00:00:00 2001
+From: Brian King <brking@linux.vnet.ibm.com>
+Date: Fri, 23 May 2014 10:52:10 -0500
+Subject: ibmvscsi: Abort init sequence during error recovery
+
+From: Brian King <brking@linux.vnet.ibm.com>
+
+commit 9ee755974bea2f9880e517ec985dc9dede1b3a36 upstream.
+
+If a CRQ reset is triggered for some reason while in the middle
+of performing VSCSI adapter initialization, we don't want to
+call the done function for the initialization MAD commands as
+this will only result in two threads attempting initialization
+at the same time, resulting in failures.
+
+Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
+Acked-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/scsi/ibmvscsi/ibmvscsi.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
++++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
+@@ -484,7 +484,8 @@ static void purge_requests(struct ibmvsc
+                                      evt->hostdata->dev);
+                       if (evt->cmnd_done)
+                               evt->cmnd_done(evt->cmnd);
+-              } else if (evt->done)
++              } else if (evt->done && evt->crq.format != VIOSRP_MAD_FORMAT &&
++                         evt->iu.srp.login_req.opcode != SRP_LOGIN_REQ)
+                       evt->done(evt);
+               free_event_struct(&evt->hostdata->pool, evt);
+               spin_lock_irqsave(hostdata->host->host_lock, flags);
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..16f2965c3d361a833c7427f7d6943076b3363f31 100644 (file)
@@ -0,0 +1 @@
+ibmvscsi-abort-init-sequence-during-error-recovery.patch