diff options
Diffstat (limited to 'arch/powerpc/include')
| -rw-r--r-- | arch/powerpc/include/asm/lppaca.h | 16 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/machdep.h | 6 | 
2 files changed, 22 insertions, 0 deletions
| diff --git a/arch/powerpc/include/asm/lppaca.h b/arch/powerpc/include/asm/lppaca.h index 380d48bacd16..26b8c807f8f1 100644 --- a/arch/powerpc/include/asm/lppaca.h +++ b/arch/powerpc/include/asm/lppaca.h @@ -33,9 +33,25 @@  //  //----------------------------------------------------------------------------  #include <linux/cache.h> +#include <linux/threads.h>  #include <asm/types.h>  #include <asm/mmu.h> +/* + * We only have to have statically allocated lppaca structs on + * legacy iSeries, which supports at most 64 cpus. + */ +#ifdef CONFIG_PPC_ISERIES +#if NR_CPUS < 64 +#define NR_LPPACAS	NR_CPUS +#else +#define NR_LPPACAS	64 +#endif +#else /* not iSeries */ +#define NR_LPPACAS	1 +#endif + +  /* The Hypervisor barfs if the lppaca crosses a page boundary.  A 1k   * alignment is sufficient to prevent this */  struct lppaca { diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h index 991d5998d6be..fe56a23e1ff0 100644 --- a/arch/powerpc/include/asm/machdep.h +++ b/arch/powerpc/include/asm/machdep.h @@ -240,6 +240,12 @@ struct machdep_calls {  	 * claims to support kexec.  	 */  	int (*machine_kexec_prepare)(struct kimage *image); + +	/* Called to perform the _real_ kexec. +	 * Do NOT allocate memory or fail here. We are past the point of +	 * no return. +	 */ +	void (*machine_kexec)(struct kimage *image);  #endif /* CONFIG_KEXEC */  #ifdef CONFIG_SUSPEND | 
