[PATCH] Driver Core: remove driver model detach_state
The driver model has a "detach_state" mechanism that: - Has never been used by any in-kernel drive; - Is superfluous, since driver remove() methods can do the same thing; - Became buggy when the suspend() parameter changed semantics and type; - Could self-deadlock when called from certain suspend contexts; - Is effectively wasted documentation, object code, and headspace. This removes that "detach_state" mechanism; net code shrink, as well as a per-device saving in the driver model and sysfs. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
@@ -19,22 +19,6 @@
|
||||
extern struct subsystem devices_subsys;
|
||||
|
||||
|
||||
int device_detach_shutdown(struct device * dev)
|
||||
{
|
||||
if (!dev->detach_state)
|
||||
return 0;
|
||||
|
||||
if (dev->detach_state == DEVICE_PM_OFF) {
|
||||
if (dev->driver && dev->driver->shutdown) {
|
||||
dev_dbg(dev, "shutdown\n");
|
||||
dev->driver->shutdown(dev);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return dpm_runtime_suspend(dev, dev->detach_state);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* We handle system devices differently - we suspend and shut them
|
||||
* down last and resume them first. That way, we don't do anything stupid like
|
||||
|
Reference in New Issue
Block a user