Messages in this thread | | | Subject | Re: [PATCH] call drv->shutdown at rmmod | From | (Eric W. Biederman) | Date | 15 Aug 2003 09:28:31 -0600 |
| |
Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:
> > You're assuming that a driver can always bring a device out a shutdown > > state. That's one of the things we talked about at OLS, and the other half > > of the justification behind such a feature, not just making sure the > > device is queisced. Your argument against my suggestion are some of the > > same arguments for a feature like you're introducing. > > There is a problem of semantics here. Is shutdown() supposed to shutdown > the hardware device (ie. low power) or just the driver ? If yes, then > it's duplicate of the PM callbacks. My understanding of the shutdown() > callback is that it was more than "stop driver activity, put device into > idle state" to prepare for a shutdown/reboot (though we do also sleep > IDE drives in this case, but this is because of that nasty cache flush > issue). > > The problem with kexec is just that. What it needs isn't low power devices, > it needs device back in "idle" state, but if possible powered up (or at > least in whatever state the driver found them on boot). The most important > thing is to actually stop pending bus mastering activities. > > On PPC, we have a name for that which comes from Open Firmware (since we > need to ask the firmware to stop bus mastering & idle devices the same way > when we take over it and before we get control of the system memory) and > it's called "quiesce".
Even if kexec is not brought into the picture the devices need to be quiesed on reboot. On x86 and probably other architectures there are 2 ways a reboot can go. 1) The firmware when it regains control toggles the motherboard reset line resetting all of the devices, so nothing we do really makes a difference. 2) The firmware when it regains control tweaks a few things and pretends it was never out of control, and restarts the boot process.
When the firmware does not toggle the motherboard reset line during a reboot the firmware case is exactly equivalent to the kexec one.
So shutdown needs to quiese things.
Eric - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |