PM: Remove destroy_suspended_device()
After 2.6.24 there was a plan to make the PM core acquire all device semaphores during a suspend/hibernation to protect itself from concurrent operations involving device objects. That proved to be too heavy-handed and we found a better way to achieve the goal, but before it happened, we had introduced the functions device_pm_schedule_removal() and destroy_suspended_device() to allow drivers to "safely" destroy a suspended device and we had adapted some drivers to use them. Now that these functions are no longer necessary, it seems reasonable to remove them and modify their users to use the normal device unregistration instead. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
138fe4e069
commit
b844eba292
13 changed files with 22 additions and 146 deletions
|
@ -545,20 +545,6 @@ extern struct device *device_create(struct class *cls, struct device *parent,
|
|||
dev_t devt, const char *fmt, ...)
|
||||
__attribute__((format(printf, 4, 5)));
|
||||
extern void device_destroy(struct class *cls, dev_t devt);
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
extern void destroy_suspended_device(struct class *cls, dev_t devt);
|
||||
extern void device_pm_schedule_removal(struct device *);
|
||||
#else /* !CONFIG_PM_SLEEP */
|
||||
static inline void destroy_suspended_device(struct class *cls, dev_t devt)
|
||||
{
|
||||
device_destroy(cls, devt);
|
||||
}
|
||||
|
||||
static inline void device_pm_schedule_removal(struct device *dev)
|
||||
{
|
||||
device_unregister(dev);
|
||||
}
|
||||
#endif /* !CONFIG_PM_SLEEP */
|
||||
|
||||
/*
|
||||
* Platform "fixup" functions - allow the platform to have their say
|
||||
|
|
|
@ -44,15 +44,7 @@ struct hwrng {
|
|||
/** Register a new Hardware Random Number Generator driver. */
|
||||
extern int hwrng_register(struct hwrng *rng);
|
||||
/** Unregister a Hardware Random Number Generator driver. */
|
||||
extern void __hwrng_unregister(struct hwrng *rng, bool suspended);
|
||||
static inline void hwrng_unregister(struct hwrng *rng)
|
||||
{
|
||||
__hwrng_unregister(rng, false);
|
||||
}
|
||||
static inline void hwrng_unregister_suspended(struct hwrng *rng)
|
||||
{
|
||||
__hwrng_unregister(rng, true);
|
||||
}
|
||||
extern void hwrng_unregister(struct hwrng *rng);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* LINUX_HWRANDOM_H_ */
|
||||
|
|
|
@ -59,15 +59,7 @@ struct led_classdev {
|
|||
|
||||
extern int led_classdev_register(struct device *parent,
|
||||
struct led_classdev *led_cdev);
|
||||
extern void __led_classdev_unregister(struct led_classdev *led_cdev, bool sus);
|
||||
static inline void led_classdev_unregister(struct led_classdev *lcd)
|
||||
{
|
||||
__led_classdev_unregister(lcd, false);
|
||||
}
|
||||
static inline void led_classdev_unregister_suspended(struct led_classdev *lcd)
|
||||
{
|
||||
__led_classdev_unregister(lcd, true);
|
||||
}
|
||||
extern void led_classdev_unregister(struct led_classdev *lcd);
|
||||
extern void led_classdev_suspend(struct led_classdev *led_cdev);
|
||||
extern void led_classdev_resume(struct led_classdev *led_cdev);
|
||||
|
||||
|
|
|
@ -43,15 +43,7 @@ struct miscdevice {
|
|||
};
|
||||
|
||||
extern int misc_register(struct miscdevice * misc);
|
||||
extern int __misc_deregister(struct miscdevice *misc, bool suspended);
|
||||
static inline int misc_deregister(struct miscdevice *misc)
|
||||
{
|
||||
return __misc_deregister(misc, false);
|
||||
}
|
||||
static inline int misc_deregister_suspended(struct miscdevice *misc)
|
||||
{
|
||||
return __misc_deregister(misc, true);
|
||||
}
|
||||
extern int misc_deregister(struct miscdevice *misc);
|
||||
|
||||
#define MODULE_ALIAS_MISCDEV(minor) \
|
||||
MODULE_ALIAS("char-major-" __stringify(MISC_MAJOR) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue