Re: swsusp broken

From: Pavel Machek
Date: Sun Aug 31 2003 - 16:08:05 EST


Hi!

> 2.6.0-test4 software suspend seems to be badly broken...looking at it
> (relevant code included below), no wonder. pm_suspend_disk() calls
> swsusp_save(), which is is essentially a nop. The intention was clearly
> that after resume control would return from swsusp_save(), which isn't
> the case, instead we return from swsusp_write(), and power down
> again!!!

If you want working swsusp/S3, go for -test3. This is known and
Patrick is working on that... I hope we can just rollback
powermanagment to -test3 state.

> --------------------------------------------------------------------------
> static int pm_suspend_disk(void)
> {
> int error;
>
> pr_debug("PM: Attempting to suspend to disk.\n");
> if (pm_disk_mode == PM_DISK_FIRMWARE)
> return pm_ops->enter(PM_SUSPEND_DISK);
>
> if (!have_swsusp)
> return -EPERM;
>
> pr_debug("PM: snapshotting memory.\n");
> in_suspend = 1;
> if ((error = swsusp_save()))
> goto Done;
>
> if (in_suspend) {
> pr_debug("PM: writing image.\n");
> error = swsusp_write();
> if (!error)
> error = power_down(pm_disk_mode);
> pr_debug("PM: Power down failed.\n");
> } else
> pr_debug("PM: Image restored successfully.\n");
> swsusp_free();
> Done:
> return error;
> }
> ----------------------------------------------------------------------------
>
> /**
> * swsusp_save - Snapshot memory
> */
>
> int swsusp_save(void)
> {
> #if defined (CONFIG_HIGHMEM) || defined (COFNIG_DISCONTIGMEM)
> printk("swsusp is not supported with high- or discontig-mem.\n");
> return -EPERM;
> #endif
> return 0;
> }

--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
-
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/