diff options
author | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 1998-07-01 02:29:40 +0000 |
---|---|---|
committer | Angelos D. Keromytis <angelos@cvs.openbsd.org> | 1998-07-01 02:29:40 +0000 |
commit | cb37391bab6e5e284edb101ead45ebef30013144 (patch) | |
tree | c5e3889429597e7bfef79fc5ac05b888ba98b20a /sys | |
parent | 6df200135f3492aa88d9e410a33a48e991293720 (diff) |
Do the right thing with interrupts during autoconfiguration; from NetBSD.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/alpha/alpha/autoconf.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/arch/alpha/alpha/autoconf.c b/sys/arch/alpha/alpha/autoconf.c index fec30a1a6e3..499c82ccecb 100644 --- a/sys/arch/alpha/alpha/autoconf.c +++ b/sys/arch/alpha/alpha/autoconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: autoconf.c,v 1.7 1998/03/17 01:41:26 angelos Exp $ */ +/* $OpenBSD: autoconf.c,v 1.8 1998/07/01 02:29:39 angelos Exp $ */ /* $NetBSD: autoconf.c,v 1.16 1996/11/13 21:13:04 cgd Exp $ */ /* @@ -90,7 +90,13 @@ configure() parse_prom_bootdev(); - (void)splhigh(); + /* + * Disable interrupts during autoconfiguration. splhigh() won't + * work, because it simply _raises_ the IPL, so if machine checks + * are disabled, they'll stay disabled. Machine checks are needed + * during autoconfig. + */ + (void)alpha_pal_swpipl(ALPHA_PSL_IPL_HIGH); if (config_rootfound("mainbus", "mainbus") == NULL) panic("no mainbus found"); (void)spl0(); @@ -131,12 +137,12 @@ struct nam2blk { char *name; int maj; } nam2blk[] = { - { "wd", 0 }, { "st", 2 }, { "cd", 3 }, - { "acd", 4 }, { "rd", 6 }, { "sd", 8 }, + { "acd", 4 }, + { "wd", 0 }, #if 0 { "fd", XXX }, #endif |