All of lore.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: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-18  7:48 Flaw in the driver-model implementation of attributes Perez-Gonzalez, Inaky
2003-06-18  8:12 ` viro
2003-06-18 14:32   ` Alan Stern
2003-06-18 17:15     ` Greg KH
2003-06-18 19:50       ` Alan Stern
2003-06-19 16:42         ` Patrick Mochel
2003-06-19 21:18           ` Alan Stern
2003-06-19 14:13       ` Alan Stern
2003-06-19 17:07         ` Patrick Mochel
2003-06-19 21:14           ` Alan Stern
2003-06-19 21:31             ` Greg KH
2003-06-20 14:22               ` Alan Stern
2003-06-20 18:32                 ` Greg KH
2003-07-02 22:12                   ` Greg KH
2003-07-03 14:51                     ` Alan Stern
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
2003-06-19 17:26         ` Flaw in the driver-model implementation of attributes Mike Anderson

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 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.