From d237fa1cf59249348d6d1e2c95b4e885ff8a5779 Mon Sep 17 00:00:00 2001 From: gallatin Date: Sat, 21 Apr 2001 21:44:39 +0000 Subject: Block out all interrupts, even machine checks, for critical_enter() This is will be required to prevent lowering the ipl when a critical_enter() is present in the interrupt path when handling a machine check. reviewed by: jhb --- sys/alpha/include/alpha_cpu.h | 1 + sys/alpha/include/cpufunc.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'sys/alpha/include') diff --git a/sys/alpha/include/alpha_cpu.h b/sys/alpha/include/alpha_cpu.h index eab0dc2..a235a81 100644 --- a/sys/alpha/include/alpha_cpu.h +++ b/sys/alpha/include/alpha_cpu.h @@ -103,6 +103,7 @@ struct alpha_pcb { #define ALPHA_PSL_IPL_IO 0x0004 /* I/O dev ints disabled */ #define ALPHA_PSL_IPL_CLOCK 0x0005 /* clock ints disabled */ #define ALPHA_PSL_IPL_HIGH 0x0006 /* all but mchecks disabled */ +#define ALPHA_PSL_IPL_MCES 0x0007 /* all interrupts disabled */ #define ALPHA_PSL_MUST_BE_ZERO 0xfffffffffffffff0 diff --git a/sys/alpha/include/cpufunc.h b/sys/alpha/include/cpufunc.h index d47652c..51a1fdc 100644 --- a/sys/alpha/include/cpufunc.h +++ b/sys/alpha/include/cpufunc.h @@ -48,7 +48,7 @@ breakpoint(void) static __inline critical_t critical_enter(void) { - return (alpha_pal_swpipl(ALPHA_PSL_IPL_HIGH)); + return (alpha_pal_swpipl(ALPHA_PSL_IPL_MCES)); } static __inline void -- cgit v1.1