On Wed, Feb 21, 2007 at 07:49:54PM +0100, Rafael J. Wysocki wrote: > Still, if you post it here again, I can have a look and make it nicer if need > be. ;-)
Indeed. Maybe we should change the -ENODEV, if we have different return codes in 2.6.21+, but otherwise it is pretty trivial: main.c | 5 ++++- user.c | 19 ++++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) --- a/kernel/power/main.c 2007-02-01 01:07:38.000000000 +0100 +++ b/kernel/power/main.c 2007-02-01 22:24:41.000000000 +0100 @@ -116,7 +116,10 @@ int suspend_enter(suspend_state_t state) printk(KERN_ERR "Some devices failed to power down\n"); goto Done; } - error = pm_ops->enter(state); + if (pm_ops && pm_ops->enter) + error = pm_ops->enter(state); + else + error = -ENODEV; device_power_up(); Done: local_irq_restore(flags); --- a/kernel/power/user.c 2007-02-01 01:07:38.000000000 +0100 +++ b/kernel/power/user.c 2007-02-01 22:25:48.000000000 +0100 @@ -292,7 +292,7 @@ static int snapshot_ioctl(struct inode * break; } - if (pm_ops->prepare) { + if (pm_ops && pm_ops->prepare) { error = pm_ops->prepare(PM_SUSPEND_MEM); if (error) goto OutS3; @@ -311,7 +311,7 @@ static int snapshot_ioctl(struct inode * device_resume(); } resume_console(); - if (pm_ops->finish) + if (pm_ops && pm_ops->finish) pm_ops->finish(PM_SUSPEND_MEM); OutS3: @@ -322,20 +322,25 @@ static int snapshot_ioctl(struct inode * switch (arg) { case PMOPS_PREPARE: - if (pm_ops->prepare) { + if (pm_ops && pm_ops->prepare) error = pm_ops->prepare(PM_SUSPEND_DISK); - } + else + error = -ENODEV; break; case PMOPS_ENTER: kernel_shutdown_prepare(SYSTEM_SUSPEND_DISK); - error = pm_ops->enter(PM_SUSPEND_DISK); + if (pm_ops && pm_ops->enter) + error = pm_ops->enter(PM_SUSPEND_DISK); + else + error = -ENODEV; break; case PMOPS_FINISH: - if (pm_ops && pm_ops->finish) { + if (pm_ops && pm_ops->finish) pm_ops->finish(PM_SUSPEND_DISK); - } + else + error = -ENODEV; break; default: -- Stefan Seyfried "Any ideas, John?" "Well, surrounding them's out." ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Suspend-devel mailing list Suspend-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/suspend-devel