* [PATCH] don't call ips_eh_reset in ips_queue to avoid deadlock
@ 2006-02-22 8:11 Mike Christie
0 siblings, 0 replies; 2+ messages in thread
From: Mike Christie @ 2006-02-22 8:11 UTC (permalink / raw)
To: linux-scsi, jack_hammer
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>
--- 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);
^ permalink raw reply [flat|nested] 2+ messages in thread
* RE: [PATCH] don't call ips_eh_reset in ips_queue to avoid deadlock
@ 2006-02-22 14:41 Hammer, Jack
0 siblings, 0 replies; 2+ messages in thread
From: Hammer, Jack @ 2006-02-22 14:41 UTC (permalink / raw)
To: Mike Christie, linux-scsi
The only place this can occur ( an ioctl reset ) is from the ServeRAID
bootable CD, which is a 2.4 kernel, which explains why this has not been
a problem and would be impossible for you to test, even if you had
hardware.
It appears to be a technically correct patch. I concur - please apply
this patch.
Thanks Mike.
Jack Hammer
Adaptec
-----Original Message-----
From: Mike Christie [mailto:michaelc@cs.wisc.edu]
Sent: Wednesday, February 22, 2006 3:12 AM
To: linux-scsi@vger.kernel.org; Hammer, Jack
Subject: [PATCH] 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>
--- 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);
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-02-22 14:41 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-22 8:11 [PATCH] don't call ips_eh_reset in ips_queue to avoid deadlock Mike Christie
-- strict thread matches above, loose matches on Subject: below --
2006-02-22 14:41 Hammer, Jack
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).