diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2017-10-12 13:24:47 +0200 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2017-10-19 17:07:39 +0200 |
commit | 6c81511ca1f52a0bbe921b2b98e34319a4ca59ed (patch) | |
tree | daa95081ebe345d39ee976f9ff6ef7cd8f80fe6d /arch/s390/include/asm/nmi.h | |
parent | s390/ctl_reg: move control register definitions to ctl_reg.h (diff) | |
download | linux-6c81511ca1f52a0bbe921b2b98e34319a4ca59ed.tar.xz linux-6c81511ca1f52a0bbe921b2b98e34319a4ca59ed.zip |
s390/nmi: allocation of the extended save area
The machine check extended save area is needed to store the vector
registers and the guarded storage control block when a CPU is
interrupted by a machine check.
Move the slab cache allocation of the full save area to nmi.c,
for early boot use a static __initdata block.
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/nmi.h')
-rw-r--r-- | arch/s390/include/asm/nmi.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/s390/include/asm/nmi.h b/arch/s390/include/asm/nmi.h index 77a7d9445e33..ed41c424448d 100644 --- a/arch/s390/include/asm/nmi.h +++ b/arch/s390/include/asm/nmi.h @@ -80,6 +80,8 @@ union mci { #define MCESA_ORIGIN_MASK (~0x3ffUL) #define MCESA_LC_MASK (0xfUL) +#define MCESA_MIN_SIZE (1024) +#define MCESA_MAX_SIZE (2048) struct mcesa { u8 vector_save_area[1024]; @@ -88,8 +90,12 @@ struct mcesa { struct pt_regs; -extern void s390_handle_mcck(void); -extern void s390_do_machine_check(struct pt_regs *regs); +void nmi_alloc_boot_cpu(struct lowcore *lc); +int nmi_alloc_per_cpu(struct lowcore *lc); +void nmi_free_per_cpu(struct lowcore *lc); + +void s390_handle_mcck(void); +void s390_do_machine_check(struct pt_regs *regs); #endif /* __ASSEMBLY__ */ #endif /* _ASM_S390_NMI_H */ |