On Wed, 12 Sep 2007 13:14:08 +0200 "Rafael J. Wysocki" <rjw@xxxxxxx> wrote: > + if (!hibernation_ops) > + return -ENOSYS; > + > + /* > + * We have cancelled the power transition by running > + * hibernation_ops->finish() before saving the image, so we should let > + * the firmware know that we're going to enter the sleep state after all > + */ > + error = hibernation_ops->start(); > + if (error) > + return error; > + > + suspend_console(); > + error = device_suspend(PMSG_SUSPEND); > + if (error) > + return error; > + > + error = hibernation_ops->prepare(); > + if (error) > + goto Resume_devices; > + > + error = disable_nonboot_cpus(); > + if (error) > + goto Finish; > + > + local_irq_disable(); > + error = device_power_down(PMSG_SUSPEND); > + if (!error) { > + hibernation_ops->enter(); > + /* We should never get here */ > + while (1); > } > + local_irq_enable(); > + Confused. afacit there's no way for the caller of this function to know whether or not suspend_console() was called, so the error recovery doesn't know whether or not to run resume_console(). How does all that work? - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html