From: Christoph Hellwig <hch@infradead.org>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Mike Anderson <andmike@us.ibm.com>,
James Bottomley <James.Bottomley@steeleye.com>,
SCSI development list <linux-scsi@vger.kernel.org>
Subject: Re: Host drivers and conversion of SCSI to the driver model
Date: Fri, 27 Jun 2003 11:03:00 +0100 [thread overview]
Message-ID: <20030627110259.A3751@infradead.org> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0306231045060.1043-100000@ida.rowland.org>; from stern@rowland.harvard.edu on Mon, Jun 23, 2003 at 10:57:22AM -0400
On Mon, Jun 23, 2003 at 10:57:22AM -0400, Alan Stern wrote:
> 2. More importantly, the current organization of the code has a
> serious problem. The SCSI core does not modify the host driver when the
> reference count for either shost->class_dev or shost->host_gendev drops to
> 0.
The host driver shouldn't know.
> Without knowing that, it is unsafe for the driver ever to deallocate a
> private host data structure, since a user process may continue to hold a
> reference to an open attribute file indefinitely, even after
> scsi_unregister() has returned.
Right, And this issue has been discussed on netdev for a long time.
The solution that they came up with and I plan to implement in scsi
aswell as soon as their code actually shows up is to have a mark this
device gone function that makes the struct device never call back
into driver code.
If you think a bit about this this is what's really needed - even with
your notification you'd still have module unload races. With the above
fix you can just free your private data in your ->remove method
(or wherever you want) after you marked the struct device / class_device
gone and be sure it'll never be used again.
Of course for this to fully work with scsi we need a proper
scsi_set_host_offline..
next prev parent reply other threads:[~2003-06-27 9:48 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20030619213109.GB5644@kroah.com>
2003-06-20 20:05 ` Host drivers and conversion of SCSI to the driver model Alan Stern
2003-06-20 21:07 ` Mike Anderson
2003-06-23 14:57 ` Alan Stern
2003-06-27 10:03 ` Christoph Hellwig [this message]
2003-06-27 17:56 ` Alan Stern
2003-06-27 18:04 ` Christoph Hellwig
2003-06-27 19:23 ` Mike Anderson
2003-06-28 8:34 ` Christoph Hellwig
2003-06-28 15:08 ` Jeff Garzik
2003-06-28 15:12 ` Christoph Hellwig
2003-07-03 15:15 ` Alan Stern
2003-07-06 16:04 ` Christoph Hellwig
2003-07-03 21:02 ` scsi_forget_host() and scsi_remove_device() Alan Stern
2003-07-03 22:19 ` Mike Anderson
2003-07-04 14:16 ` Alan Stern
2003-07-04 19:36 ` Alan Stern
2003-07-04 19:54 ` Matthew Dharm
2003-07-05 14:11 ` Alan Stern
2003-07-05 16:25 ` Matthew Dharm
2003-07-06 16:13 ` Christoph Hellwig
2003-07-07 15:19 ` PATCH: (as54) Fix hot-unplugging for sr.c Alan Stern
2003-07-08 22:29 ` Mike Anderson
2003-07-09 14:04 ` Alan Stern
2003-07-09 14:44 ` Mike Anderson
2003-07-09 16:02 ` Alan Stern
2003-07-31 19:38 ` PATCH: (as33e) Fix removal of /proc/scsi/hostdir on hot-unplug Alan Stern
2003-08-01 20:03 ` Mike Anderson
2003-08-15 20:05 ` PATCH: (as84) Fix my earlier scsi procdir patch Alan Stern
2003-09-16 14:50 ` PATCH: (as84) Small fixup for SCSI proc code Alan Stern
2003-10-16 21:09 ` Race in removal of host class device attribute file Alan Stern
2003-10-16 22:47 ` Mike Anderson
2003-10-17 12:18 ` Alan Stern
2003-10-17 12:30 ` Christoph Hellwig
2003-12-10 15:02 ` Suggestion for aiding debugging of host removal Alan Stern
2003-12-10 15:14 ` Christoph Hellwig
2003-12-11 4:16 ` DMA Timeout with Promise S150TX4 and 2.6.0-test11-bk8 Paul
2003-12-11 7:48 ` Suggestion for aiding debugging of host removal Mike Anderson
2003-12-11 11:39 ` Christoph Hellwig
2003-12-11 15:14 ` Alan Stern
2003-07-06 16:11 ` scsi_forget_host() and scsi_remove_device() Christoph Hellwig
2003-07-07 16:06 ` Alan Stern
2003-07-03 20:20 ` SCSI documentation in scsi_mid_low_api.txt Alan Stern
2003-07-03 20:42 ` aic7xxx driver schedules() while holding spinlock Tony Battersby
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=20030627110259.A3751@infradead.org \
--to=hch@infradead.org \
--cc=James.Bottomley@steeleye.com \
--cc=andmike@us.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox