public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
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..

  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