* Fix for aic7xxx problems in BK latest
@ 2003-11-24 5:53 James Bottomley
2003-11-24 7:18 ` Christoph Hellwig
0 siblings, 1 reply; 2+ messages in thread
From: James Bottomley @ 2003-11-24 5:53 UTC (permalink / raw)
To: SCSI Mailing List, Pete Clements, Fabio Coatti, Zwane Mwaikambo
Cc: Christoph Hellwig
It turns out the scsi_device refcounting and list lockdown altered the
conditions under which scsi_report_bus_reset() works, since it calls
shost_for_each_device, which now takes the host lock, that lock cannot
be held while calling the report functions. However, the assumption by
aic is that it can.
I fixed the problem by using the no lock version of the iterator.
James
===== drivers/scsi/scsi_error.c 1.65 vs edited =====
--- 1.65/drivers/scsi/scsi_error.c Sun Sep 21 12:49:36 2003
+++ edited/drivers/scsi/scsi_error.c Sun Nov 23 23:39:09 2003
@@ -1622,7 +1622,7 @@
{
struct scsi_device *sdev;
- shost_for_each_device(sdev, shost) {
+ __shost_for_each_device(sdev, shost) {
if (channel == sdev->channel) {
sdev->was_reset = 1;
sdev->expecting_cc_ua = 1;
@@ -1656,7 +1656,7 @@
{
struct scsi_device *sdev;
- shost_for_each_device(sdev, shost) {
+ __shost_for_each_device(sdev, shost) {
if (channel == sdev->channel &&
target == sdev->id) {
sdev->was_reset = 1;
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Fix for aic7xxx problems in BK latest
2003-11-24 5:53 Fix for aic7xxx problems in BK latest James Bottomley
@ 2003-11-24 7:18 ` Christoph Hellwig
0 siblings, 0 replies; 2+ messages in thread
From: Christoph Hellwig @ 2003-11-24 7:18 UTC (permalink / raw)
To: James Bottomley
Cc: SCSI Mailing List, Pete Clements, Fabio Coatti, Zwane Mwaikambo,
Christoph Hellwig
On Sun, Nov 23, 2003 at 11:53:20PM -0600, James Bottomley wrote:
> It turns out the scsi_device refcounting and list lockdown altered the
> conditions under which scsi_report_bus_reset() works, since it calls
> shost_for_each_device, which now takes the host lock, that lock cannot
> be held while calling the report functions. However, the assumption by
> aic is that it can.
>
> I fixed the problem by using the no lock version of the iterator.
Well, that makes the problem go away but adds races again, the right
fix is to rename you versions with an __ and make the normal versions
take the host_lock around that - we don't actually need the refcounting
here because we just set the two flags so holding the lock over it is
fine.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-11-24 7:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-11-24 5:53 Fix for aic7xxx problems in BK latest James Bottomley
2003-11-24 7:18 ` Christoph Hellwig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox