On Tuesday, July 16, 2013 03:32:01 PM joeyli wrote: > 於 一,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. OK, so it looks like we still need somebody to confirm that indeed Windows 8 doesn't check the hardware signature during resume from hibernation, right? It is kind of important, because the *reason* for doing that change is the reported Windows 8 compatibility issue. Thanks, Rafael -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- 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