From: James Bottomley <James.Bottomley@SteelEye.com>
To: Hannes Reinecke <hare@suse.de>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>,
SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: [Patch] Fix oops on rmmod usb-storage
Date: 29 Sep 2004 09:56:29 -0400 [thread overview]
Message-ID: <1096466196.2028.8.camel@mulgrave> (raw)
In-Reply-To: <415A67B8.2080003@suse.de>
On Wed, 2004-09-29 at 03:43, Hannes Reinecke wrote:
> usbcore: deregistering driver usb-storage
> scsi: Device offlined - not ready after error recovery: host 0 channel 0
> id 0 lun 0
> sr 0:0:0:0: Illegal state transition cancel->offline
> Badness in scsi_device_set_state at drivers/scsi/scsi_lib.c:1688
> [<e12bab6e>] scsi_device_set_state+0x9e/0xd0 [scsi_mod]
> [<e12b8a6e>] scsi_eh_offline_sdevs+0x4e/0x70 [scsi_mod]
> [<e12b8f1a>] scsi_unjam_host+0x9a/0x1b0 [scsi_mod]
> [<e12b90f5>] scsi_error_handler+0xc5/0x160 [scsi_mod]
> [<e12b9030>] scsi_error_handler+0x0/0x160 [scsi_mod]
> [<c0104255>] kernel_thread_helper+0x5/0x10
This isn't an oops, it's a state transition warning. Apparently the
customary attempt to cancel the commands failed. This is really only a
warning and will probably go away eventually (we'll just silently fail
the transition attempt).
> It turned out that in drivers/scsi/hosts.c:scsi_remove_host()
> first the host is removed with scsi_forget_host() and _then_ all
> outstanding I/O to this host is cancelled with scsi_host_cancel().
> Sounds a bit fishy as scsi_host_cancel() tries to talk to a host which
> we just have deleted ...
> (Incidentally, this is most likely the same bug as Bug #2752 and #3480
> from bugme.osdl.org :-).
> (And also #133249 from bugzilla.redhat.com :-).
>
> The attached patch corrects this.
> Please apply.
No, the patch is wrong. we do forget first to make the host
inaccessible from above then cancel the outstanding commands.
The key to the solution of this problem is to know what USB is trying to
do with the dead device. SCSI is trying to be polite and explicitly
kill the outstanding commands before it removes the HBA. Presumably USB
is returning something that says this can't be done so the EH gets all
the way up to offlining.
Also, please at least cc linux-scsi@vger.kernel.org on SCSI problems.
Thanks,
James
next prev parent reply other threads:[~2004-09-29 13:56 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <415A67B8.2080003@suse.de>
2004-09-29 12:03 ` [Patch] Fix oops on rmmod usb-storage Christoph Hellwig
2004-09-29 12:31 ` Hannes Reinecke
2004-09-29 17:12 ` Mike Anderson
2004-09-29 17:19 ` James Bottomley
2004-09-29 17:22 ` Christoph Hellwig
2004-09-29 17:36 ` Mike Anderson
2004-09-29 17:38 ` Christoph Hellwig
2004-09-29 17:50 ` Alan Stern
2004-09-29 18:32 ` Mike Anderson
2004-09-29 18:58 ` Alan Stern
2004-09-30 8:09 ` Hannes Reinecke
2004-09-30 18:14 ` Alan Stern
2004-10-01 7:11 ` Hannes Reinecke
2004-10-01 16:07 ` Alan Stern
2004-09-29 17:52 ` Mike Anderson
2004-09-29 13:56 ` James Bottomley [this message]
2004-09-29 13:17 ` Alan Cox
2004-09-29 14:24 ` James Bottomley
2004-09-29 14:44 ` Hannes Reinecke
2004-09-29 15:15 ` James Bottomley
2004-09-29 15:28 ` Matthew Wilcox
2004-09-29 15:35 ` James Bottomley
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=1096466196.2028.8.camel@mulgrave \
--to=james.bottomley@steeleye.com \
--cc=akpm@osdl.org \
--cc=hare@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
/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 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).