Re: [PATCH 1/4] ACPI Hibernation: Use ACPI hardware signature

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

 



On Wednesday, 7 of May 2008, Pavel Machek wrote:
> Hi!

Hi,

> > From: Shaohua Li <shaohua.li@xxxxxxxxx>
> > 
> > ACPI defines a hardware signature. BIOS calculates the signature
> > according to hardware configure, if hardware changes, the signature
> > will change, in this case, S4 resume should fail.
> > 
> > Signed-off-by: Shaohua Li <shaohua.li@xxxxxxxxx>
> > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
> > ---
> >  drivers/acpi/sleep/main.c |   24 ++++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> > 
> > Index: linux-2.6/drivers/acpi/sleep/main.c
> > ===================================================================
> > --- linux-2.6.orig/drivers/acpi/sleep/main.c
> > +++ linux-2.6/drivers/acpi/sleep/main.c
> > @@ -255,6 +255,17 @@ static struct dmi_system_id __initdata a
> >  #endif /* CONFIG_SUSPEND */
> >  
> >  #ifdef CONFIG_HIBERNATION
> > +static unsigned long s4_hardware_signature;
> > +static struct acpi_table_facs *facs;
> > +static bool nosigcheck;
> > +
> > +static int __init acpi_s4_nosigcheck(char *str)
> > +{
> > +	nosigcheck = true;
> > +	return 1;
> > +}
> > +__setup("acpi_s4_nosigcheck", acpi_s4_nosigcheck);
> > +
> 
> Needs a patch to Documentation/ , too.

Yes, thanks.

> >  static int acpi_hibernation_begin(void)
> >  {
> >  	acpi_target_sleep_state = ACPI_STATE_S4;
> > @@ -301,6 +312,12 @@ static void acpi_hibernation_leave(void)
> >  	acpi_enable();
> >  	/* Reprogram control registers and execute _BFS */
> >  	acpi_leave_sleep_state_prep(ACPI_STATE_S4);
> > +	/* Check the hardware signature */
> > +	if (facs && s4_hardware_signature != facs->hardware_signature)
> 
> do you need && !nosigcheck here ?

No, facs is NULL if !nosigcheck.

> > +		printk(KERN_EMERG "ACPI: Hardware changed while hibernated, "
> > +			"cannot resume!\n");
> > +		panic("ACPI S4 hardware signature mismatch");
> > +	}
> >  }
> >  
> >  static void acpi_hibernation_finish(void)
> 

Thanks,
Rafael
_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm

[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux