ACK > -----Original Message----- > From: Konrad Rzeszutek Wilk [mailto:konrad.w...@oracle.com] > Sent: Thursday, September 29, 2011 1:17 PM > To: linux-ker...@vger.kernel.org; r...@sisk.pl; t...@linutronix.de; > h...@zytor.com; x...@kernel.org; > Brown, Len; Cihula, Joseph; Wang, Shane; xen-de...@lists.xensource.com; > linux-pm@lists.linux- > foundation.org; tboot-devel@lists.sourceforge.net; linux-a...@vger.kernel.org; > liang.t...@oracle.com; Yu, Ke; Tian, Kevin; jer...@goop.org > Cc: Konrad Rzeszutek Wilk > Subject: [PATCH 3/8] x86/acpi/sleep: Provide registration for > acpi_suspend_lowlevel. > > From: Liang Tang <liang.t...@oracle.com> > > Which by default will be x86_acpi_suspend_lowlevel. > This registration allows us to register another callback if there is a need > to use another > platform specific callback. > > CC: Thomas Gleixner <t...@linutronix.de> > CC: "H. Peter Anvin" <h...@zytor.com> > CC: x...@kernel.org > CC: Len Brown <len.br...@intel.com> > CC: Joseph Cihula <joseph.cih...@intel.com> > CC: Shane Wang <shane.w...@intel.com> > CC: linux...@lists.linux-foundation.org > CC: linux-a...@vger.kernel.org > CC: Len Brown <len.br...@intel.com> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.w...@oracle.com> > Signed-off-by: Liang Tang <liang.t...@oracle.com> > --- > arch/x86/include/asm/acpi.h | 2 +- > arch/x86/kernel/acpi/boot.c | 2 ++ > arch/x86/kernel/acpi/sleep.c | 4 ++-- > arch/x86/kernel/acpi/sleep.h | 2 ++ > drivers/acpi/sleep.c | 2 ++ > 5 files changed, 9 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h index > 0a46696..9b538dc > 100644 > --- a/arch/x86/include/asm/acpi.h > +++ b/arch/x86/include/asm/acpi.h > @@ -119,7 +119,7 @@ static inline void acpi_disable_pci(void) } > > /* Low-level suspend routine. */ > -extern int acpi_suspend_lowlevel(void); > +extern int (*acpi_suspend_lowlevel)(void); > > extern const unsigned char acpi_wakeup_code[]; #define acpi_wakeup_address > (__pa(TRAMPOLINE_SYM(acpi_wakeup_code))) > diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index > 7f30806..ddd081b > 100644 > --- a/arch/x86/kernel/acpi/boot.c > +++ b/arch/x86/kernel/acpi/boot.c > @@ -44,6 +44,7 @@ > #include <asm/mpspec.h> > #include <asm/smp.h> > > +#include "sleep.h" /* To include x86_acpi_suspend_lowlevel */ > static int __initdata acpi_force = 0; > u32 acpi_rsdt_forced; > int acpi_disabled; > @@ -556,6 +557,7 @@ int (*__acpi_override_sleep)(u8 sleep_state, u32 > pm1a_ctrl, > u32 pm1b_ctrl, bool *skip_rest) \ > __attribute__ ((unused)) = NULL; > > +int (*acpi_suspend_lowlevel)(void) = x86_acpi_suspend_lowlevel; > /* > * success: return IRQ number (>=0) > * failure: return < 0 > diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c > index 103b6ab..4d2d0b1 > 100644 > --- a/arch/x86/kernel/acpi/sleep.c > +++ b/arch/x86/kernel/acpi/sleep.c > @@ -25,12 +25,12 @@ static char temp_stack[4096]; #endif > > /** > - * acpi_suspend_lowlevel - save kernel state > + * x86_acpi_suspend_lowlevel - save kernel state > * > * Create an identity mapped page table and copy the wakeup routine to > * low memory. > */ > -int acpi_suspend_lowlevel(void) > +int x86_acpi_suspend_lowlevel(void) > { > struct wakeup_header *header; > /* address in low memory of the wakeup routine. */ diff --git > a/arch/x86/kernel/acpi/sleep.h > b/arch/x86/kernel/acpi/sleep.h index 416d4be..4d3feb5 100644 > --- a/arch/x86/kernel/acpi/sleep.h > +++ b/arch/x86/kernel/acpi/sleep.h > @@ -13,3 +13,5 @@ extern unsigned long acpi_copy_wakeup_routine(unsigned > long); extern void > wakeup_long64(void); > > extern void do_suspend_lowlevel(void); > + > +extern int x86_acpi_suspend_lowlevel(void); > diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index > 3ed80b2..3570c00 100644 > --- a/drivers/acpi/sleep.c > +++ b/drivers/acpi/sleep.c > @@ -254,6 +254,8 @@ static int acpi_suspend_enter(suspend_state_t pm_state) > break; > > case ACPI_STATE_S3: > + if (!acpi_suspend_lowlevel) > + return -ENODEV; > error = acpi_suspend_lowlevel(); > if (error) > return error; > -- > 1.7.4.1
------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ tboot-devel mailing list tboot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tboot-devel