Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 May 2000 09:15:00 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        Mike Smith <msmith@freebsd.org>
Cc:        shimon@simon-shapiro.org, freebsd-current@freebsd.org
Subject:   Re: EVENTHANDLER_DECLARE 
Message-ID:  <Pine.BSF.4.21.0005100913030.47945-100000@salmon.nlsystems.com>
In-Reply-To: <200005100215.TAA21503@mass.cdrom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 9 May 2000, Mike Smith wrote:

> > 
> > On 10-May-00 Mike Smith wrote:
> > >> Sorry to bother y'll, but;
> > >> 
> > >> Has anyone ever used that?  I see no trace of any kernel
> > >> code calling it, and the at_shutdown code appears to be
> > >> gone.
> > > 
> > > It's still used in the shutdown code; it was meant to be available for 
> > > general use elsewhere, but I haven't seen anyone playing with it, so 
> > > maybe the design tradeoffs were bad choices.
> > 
> > I dunno.  It seems to do anything I need;  Call me with an argument.
> > I do not even need the priority.
> 
> It won't notify you that your code is about to be removed from the kernel.
> 
> > >> BTW, for all it is worth, any caching controller not using
> > >> this is guaranteed to lose data.
> > > 
> > > Wrong layer.  You should be using the bus shutdown method; look at eg. 
> > > the Mylex driver to see how this is done.  You should probably call your 
> > > flush routine from the suspend method as well.
> > 
> > This is dangerous for the OSM.  When the i2o OSM shuts an IOP
> > down, it is history.  It will stop doing any work at all; network,
> > disk, console, mouse, whatever.  I reserve that for really, really
> > shutdown/reset.
> 
> I'm not sure I understand what you mean by "dangerous".  When your 
> shutdown method is called, you're being told that you're about to stop 
> being able to control your hardware, either because your code is about to 
> be removed from the kernel (module unload) or because the system is being 
> shut down.

Actually, DEVICE_DETACH is called when the driver is unloaded and it can
return an error which should abort the unload. If DEVICE_SHUTDOWN is
called, then you have no choice - the kernel is stopping soon and this is
your last change to tidy up.

> 
> Before you return success from your shutdown method, you must have 
> brought your hardware to a quiescent state, ready for immediate loss of 
> power.  It must not generate any more interrupts or access any more data 
> once you have returned.
> 
> You can veto your shutdown (by returning nonzero), which will fail a 
> module unload, but _will_not_ fail a kernel shutdown.

See above - you can veto detach but not shutdown.

-- 
Doug Rabson				Mail:  dfr@nlsystems.com
Nonlinear Systems Ltd.			Phone: +44 20 8442 9037




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0005100913030.47945-100000>