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
This commit is contained in:
gallatin 2001-04-21 21:44:39 +00:00
parent 41ad8109a3
commit d237fa1cf5
2 changed files with 2 additions and 1 deletions

View File

@ -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

View File

@ -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