於 一,2013-07-15 於 13:43 +0200,oliver@xxxxxxxxxx 提到: > From: Oliver Neukum <oneukum@xxxxxxx> > > Some BIOSes change hardware based on the state of > a laptop's lid. If the lid is closed, the touchpad is > disabled and the checksum changes. Windows 8 no longer > aborts resume if the checksum has changed. > > Signed-off-by: Oliver Neukum <oneukum@xxxxxxx> > --- > drivers/acpi/sleep.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c > index 9c1a435..14744e5 100644 > --- a/drivers/acpi/sleep.c > +++ b/drivers/acpi/sleep.c > @@ -664,11 +664,9 @@ static void acpi_hibernation_leave(void) > /* Reprogram control registers */ > acpi_leave_sleep_state_prep(ACPI_STATE_S4); > /* Check the hardware signature */ > - if (facs && s4_hardware_signature != facs->hardware_signature) { > - printk(KERN_EMERG "ACPI: Hardware changed while hibernated, " > - "cannot resume!\n"); > - panic("ACPI S4 hardware signature mismatch"); > - } > + if (facs && s4_hardware_signature != facs->hardware_signature) > + printk(KERN_CRIT "ACPI: Hardware changed while hibernated, " > + "success doubtful!\n"); > /* Restore the NVS memory area */ > suspend_nvs_restore(); > /* Allow EC transactions to happen. */ This morning I tried to reproduce the hardware_signature change on my Acer notebook, I hope can monitor the change on Linux then use Windows 8 to check the behavior. Unfortunately I can not reproduce the hardware_signature change by remove memory or PCI device(wifi module) with Linux kernel. For PCI device, as ACPI spec's declare, it didn't causes hardware_signature change, I print out in acpi_hibernation_leave() to confirm it. For memory size, before the S4 resume path run to acpi_hibernation_leave(), kernel check the physical memory pages number in snapshot_write_next() then -EPERM if physical pages change . So, it doesn't have chance to check the hardware_signature changed. Base on the above testing, correct my originally thinking, the hardware_signature check could not detect the change of memory size because it's too late. Sorry for I didn't find out the actual behavior of Windows 8 to confirm it ignore hardware_signature change. At least could not verify on my machine. Thanks a lot! Joey Lee -- 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