summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ips.c
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2006-02-22 09:11:59 +0100
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-02-28 06:32:39 +0100
commitba3af0aff042caa1f41b5f7164cab37c717b8811 (patch)
tree62f0b592202522a5a92fc870a5c44ee854b1f90f /drivers/scsi/ips.c
parent[SCSI] scsi_lib: fix recognition of cache type of Initio SBP-2 bridges (diff)
downloadlinux-ba3af0aff042caa1f41b5f7164cab37c717b8811.tar.xz
linux-ba3af0aff042caa1f41b5f7164cab37c717b8811.zip
[SCSI] don't call ips_eh_reset in ips_queue to avoid deadlock
When the locking was changed in the eh code ips_eh_reset was changed so that it was a wraper around __ips_eh_reset and all ips_eh_reset does is grab the host lock and then calls __ips_eh_reset. In the queuecommand, ips_queue is called with the host_lock held so if it calls ips_eh_reset we will have a problem. This patch just has ips_queue call __ips_eh_reset. Patch is only compile tested. I do not have the HW. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Acked-by: Hammer, Jack <Jack_Hammer@adaptec.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/ips.c')
-rw-r--r--drivers/scsi/ips.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c
index 86c546164da9..481708d527ae 100644
--- a/drivers/scsi/ips.c
+++ b/drivers/scsi/ips.c
@@ -1146,7 +1146,7 @@ ips_queue(Scsi_Cmnd * SC, void (*done) (Scsi_Cmnd *))
return (0);
}
ha->ioctl_reset = 1; /* This reset request is from an IOCTL */
- ips_eh_reset(SC);
+ __ips_eh_reset(SC);
SC->result = DID_OK << 16;
SC->scsi_done(SC);
return (0);