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@xxxxxxxxxxx> --- linux-2.6.16-rc4/drivers/scsi/ips.c 2006-02-17 16:23:45.000000000 -0600 +++ linux-2.6.16-rc4.work/drivers/scsi/ips.c 2006-02-22 01:51:39.000000000 -0600 @@ -1146,7 +1146,7 @@ ips_queue(Scsi_Cmnd * SC, void (*done) ( 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); - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html