]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/2.6.15.7/ib-srp-don-t-send-task-management-commands-after-target-removal.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.15.7 / ib-srp-don-t-send-task-management-commands-after-target-removal.patch
CommitLineData
24d97a95
CW
1From stable-bounces@linux.kernel.org Mon Mar 6 20:28:25 2006
2Date: Mon, 06 Mar 2006 20:23:33 -0800
3From: Roland Dreier <rdreier@cisco.com>
4To: stable@kernel.org
2bd45b63 5Subject: IB/srp: Don't send task management commands after target removal
24d97a95
CW
6
7Just fail abort and reset requests that come in after we've already
8decided to remove a target. This fixes a nasty crash if a storage
9target goes away.
10
11Signed-off-by: Roland Dreier <rolandd@cisco.com>
12Signed-off-by: Chris Wright <chrisw@sous-sol.org>
5390119a 13Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
24d97a95
CW
14---
15
16This is upstream in Linus's tree as 1285b3a0b0aa2391ac6f6939e6737203c8220f68
17
18 drivers/infiniband/ulp/srp/ib_srp.c | 6 ++++++
5390119a 19 1 file changed, 6 insertions(+)
24d97a95
CW
20
21--- linux-2.6.15.6.orig/drivers/infiniband/ulp/srp/ib_srp.c
22+++ linux-2.6.15.6/drivers/infiniband/ulp/srp/ib_srp.c
23@@ -1154,6 +1154,12 @@ static int srp_send_tsk_mgmt(struct scsi
24
25 spin_lock_irq(target->scsi_host->host_lock);
26
27+ if (target->state == SRP_TARGET_DEAD ||
28+ target->state == SRP_TARGET_REMOVED) {
29+ scmnd->result = DID_BAD_TARGET << 16;
30+ goto out;
31+ }
32+
33 if (scmnd->host_scribble == (void *) -1L)
34 goto out;
35