diff options
author | gallatin <gallatin@FreeBSD.org> | 2001-04-21 21:44:39 +0000 |
---|---|---|
committer | gallatin <gallatin@FreeBSD.org> | 2001-04-21 21:44:39 +0000 |
commit | d237fa1cf59249348d6d1e2c95b4e885ff8a5779 (patch) | |
tree | 202c9fc8a1416b47d99b183be07ae6734c377e66 /sys/alpha/include | |
parent | 41ad8109a35a10eae22884634dd3af7292f6d0d3 (diff) | |
download | FreeBSD-src-d237fa1cf59249348d6d1e2c95b4e885ff8a5779.zip FreeBSD-src-d237fa1cf59249348d6d1e2c95b4e885ff8a5779.tar.gz |
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
Diffstat (limited to 'sys/alpha/include')
-rw-r--r-- | sys/alpha/include/alpha_cpu.h | 1 | ||||
-rw-r--r-- | sys/alpha/include/cpufunc.h | 2 |
2 files changed, 2 insertions, 1 deletions
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 |