Re: [PATCH] call drv->shutdown at rmmod

From: Russell King
Date: Thu Aug 14 2003 - 11:16:04 EST


On Thu, Aug 14, 2003 at 09:50:05AM -0600, Eric W. Biederman wrote:
> Russell King <rmk@xxxxxxxxxxxxxxxx> writes:
> > That's likely to remove the keyboard driver, and some people like
> > to configure their box so that ctrl-alt-del halts the system, and
> > a further ctrl-alt-del reboots the system once halted.
>
> Hmm. That is a very weird case. Semantically the keyboard driver
> and everything else should be removed in any case.

I don't view it as "really weird" - it's something I've always done
with 2.2 and 2.4, and in fact the first thing I do when I get a machine
is to modify the inittab to halt the machine on ctrl-alt-del.

It's far safer than hitting ctrl-alt-del and trying to power the machine
off at the exact moment it reboots.

However, sometimes you want it to reboot, and in this case its far
simpler to wait for the machine to halt, and then use ctrl-alt-del
again. It's something that's been supported by both the kernel and
init for eons.

> After device_shutdown is called it is improper for any driver
> to be handling interrupts because the are supposed to be in a quiescent
> state. And if they are not it is likely to break a soft reboot.

I guess then this is another bug we need to add to the list of bugs
introduced during 2.5 into 2.6 then...

If it is changing, then someone needs to get that information into
davej's document.

> Russell do you have any objects to always calling shutdown before
> remove? I don't think this looses knowledge and in most cases it should
> work, but if there are bus devices were we need to do things significantly
> differently I am open to other solutions.

The way I'm treating ->shutdown at present is that it is the final call
to the device driver. Once this call has been made, the bus driver
puts the bus into the correct state for reboot, and the device driver
must not attempt to access it.

--
Russell King (rmk@xxxxxxxxxxxxxxxx) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/