Re: [PATCH] ACPI:remove panic in case hardware has changed after S4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



於 一,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




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux