From: James Bottomley <James.Bottomley@SteelEye.com>
To: Mike Christie <mikenc@us.ibm.com>
Cc: Mateusz.Blaszczyk@nask.pl, Alan Stern <stern@rowland.harvard.edu>,
SCSI development list <linux-scsi@vger.kernel.org>,
Matthew Dharm <mdharm-usb@one-eyed-alien.net>,
USB development list <linux-usb-devel@lists.sourceforge.net>
Subject: Re: [linux-usb-devel] 2.6.9-rc4mm1:badness in drivers/scsi/scsi_lib.c
Date: 26 Oct 2004 21:53:58 -0400 [thread overview]
Message-ID: <1098842044.1762.688.camel@mulgrave> (raw)
In-Reply-To: <417E92AB.5020406@us.ibm.com>
On Tue, 2004-10-26 at 14:08, Mike Christie wrote:
> > The null state and and oops are becuase of this
> > http://marc.theaimsgroup.com/?l=linux-scsi&m=109733573729283&w=2
>
> Oh yeah. that patch is not correct, but if you correctly modify it to
> use device_for_each_child per Christoph's suggestion, I seem to be
> getting some refcounting errors. For some reason the sdev will be
> released, but the sd.c still thinks it is there.
Actually, he suggested using shost_for_each_device. The reason being
that you can't have nested device_for_each_child (because it takes the
bus semaphore).
The attached should do this, if someone would care to try it out.
James
===== hosts.c 1.102 vs edited =====
--- 1.102/drivers/scsi/hosts.c 2004-10-11 10:03:45 -05:00
+++ edited/hosts.c 2004-10-26 20:49:51 -05:00
@@ -50,11 +50,6 @@
.release = scsi_host_cls_release,
};
-static int scsi_device_cancel_cb(struct device *dev, void *data)
-{
- return scsi_device_cancel(to_scsi_device(dev), *(int *)data);
-}
-
/**
* scsi_host_cancel - cancel outstanding IO to this host
* @shost: pointer to struct Scsi_Host
@@ -62,9 +57,12 @@
**/
void scsi_host_cancel(struct Scsi_Host *shost, int recovery)
{
+ struct scsi_device *sdev;
+
set_bit(SHOST_CANCEL, &shost->shost_state);
- device_for_each_child(&shost->shost_gendev, &recovery,
- scsi_device_cancel_cb);
+ shost_for_each_device(sdev, shost) {
+ scsi_device_cancel(sdev, recovery);
+ }
wait_event(shost->host_wait, (!test_bit(SHOST_RECOVERY,
&shost->shost_state)));
}
next prev parent reply other threads:[~2004-10-27 1:54 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-18 12:51 2.6.9-rc4mm1:badness in drivers/scsi/scsi_lib.c Mateusz.Blaszczyk
2004-10-18 15:30 ` [linux-usb-devel] " Alan Stern
2004-10-21 9:28 ` Mateusz.Blaszczyk
2004-10-21 14:41 ` Alan Stern
2004-10-26 7:57 ` Mateusz.Blaszczyk
2004-10-26 15:07 ` [linux-usb-devel] " Alan Stern
2004-10-26 18:03 ` Mike Christie
2004-10-26 18:08 ` Mike Christie
2004-10-27 1:53 ` James Bottomley [this message]
2004-10-27 5:02 ` [linux-usb-devel] " Douglas Gilbert
2004-10-27 13:42 ` James Bottomley
2004-10-27 6:41 ` Mike Christie
2004-10-27 8:29 ` [linux-usb-devel] " Mike Christie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1098842044.1762.688.camel@mulgrave \
--to=james.bottomley@steeleye.com \
--cc=Mateusz.Blaszczyk@nask.pl \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-usb-devel@lists.sourceforge.net \
--cc=mdharm-usb@one-eyed-alien.net \
--cc=mikenc@us.ibm.com \
--cc=stern@rowland.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.