diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2007-06-20 16:50:44 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2007-06-20 16:50:44 +0000 |
commit | 796773aef1c85dfd54f8ae6a2fd89459a276b461 (patch) | |
tree | 5b834c2b2a5656b62c6f361d452e474c94ba183b /sys/arch | |
parent | 7a248a53ae6ca87c8bf92d9b6864d8bebe26bca1 (diff) |
Make sure IPL_CLOCK blocks device interrupts.
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/mips64/mips64/interrupt.c | 11 | ||||
-rw-r--r-- | sys/arch/sgi/include/intr.h | 16 | ||||
-rw-r--r-- | sys/arch/sgi/localbus/macebus.c | 11 |
3 files changed, 18 insertions, 20 deletions
diff --git a/sys/arch/mips64/mips64/interrupt.c b/sys/arch/mips64/mips64/interrupt.c index 19a2b952aa7..4b998b155e1 100644 --- a/sys/arch/mips64/mips64/interrupt.c +++ b/sys/arch/mips64/mips64/interrupt.c @@ -1,4 +1,4 @@ -/* $OpenBSD: interrupt.c,v 1.28 2007/06/18 20:24:48 miod Exp $ */ +/* $OpenBSD: interrupt.c,v 1.29 2007/06/20 16:50:39 miod Exp $ */ /* * Copyright (c) 2001-2004 Opsycon AB (www.opsycon.se / www.opsycon.com) @@ -427,15 +427,14 @@ generic_intr_makemasks() /* * There are tty, network and disk drivers that use free() at interrupt * time, so imp > (tty | net | bio). - */ - imask[IPL_VM] |= imask[IPL_TTY] | imask[IPL_NET] | imask[IPL_BIO]; - - /* + * * Enforce a hierarchy that gives slow devices a better chance at not * dropping data. */ - imask[IPL_TTY] |= imask[IPL_NET] | imask[IPL_BIO]; imask[IPL_NET] |= imask[IPL_BIO]; + imask[IPL_TTY] |= imask[IPL_NET]; + imask[IPL_VM] |= imask[IPL_TTY]; + imask[IPL_CLOCK] |= imask[IPL_VM] | SPL_CLOCKMASK; /* * These are pseudo-levels. diff --git a/sys/arch/sgi/include/intr.h b/sys/arch/sgi/include/intr.h index e1e812202a2..16c3de6d5f7 100644 --- a/sys/arch/sgi/include/intr.h +++ b/sys/arch/sgi/include/intr.h @@ -1,4 +1,4 @@ -/* $OpenBSD: intr.h,v 1.17 2007/05/07 18:42:13 kettenis Exp $ */ +/* $OpenBSD: intr.h,v 1.18 2007/06/20 16:50:41 miod Exp $ */ /* * Copyright (c) 2001-2004 Opsycon AB (www.opsycon.se / www.opsycon.com) @@ -52,13 +52,13 @@ /* Interrupt priority `levels'; not mutually exclusive. */ -#define IPL_BIO 0 /* block I/O */ +#define IPL_NONE 0 /* nothing */ +#define IPL_BIO 1 /* block I/O */ #define IPL_AUDIO IPL_BIO -#define IPL_NET 1 /* network */ -#define IPL_TTY 2 /* terminal */ -#define IPL_VM 3 /* memory allocation */ -#define IPL_CLOCK 4 /* clock */ -#define IPL_NONE 5 /* nothing */ +#define IPL_NET 2 /* network */ +#define IPL_TTY 3 /* terminal */ +#define IPL_VM 4 /* memory allocation */ +#define IPL_CLOCK 5 /* clock */ #define IPL_HIGH 6 /* everything */ #define NIPLS 7 /* Number of levels */ @@ -85,7 +85,7 @@ #define splnet() splraise(imask[IPL_NET]) #define spltty() splraise(imask[IPL_TTY]) #define splaudio() splraise(imask[IPL_AUDIO]) -#define splclock() splraise(SPL_CLOCKMASK|SINT_ALLMASK) +#define splclock() splraise(imask[IPL_CLOCK]) #define splvm() splraise(imask[IPL_VM]) #define splsoftclock() splraise(SINT_CLOCKMASK) #define splsoftnet() splraise(SINT_NETMASK|SINT_CLOCKMASK) diff --git a/sys/arch/sgi/localbus/macebus.c b/sys/arch/sgi/localbus/macebus.c index 695ea79c46a..ca1f67e06f7 100644 --- a/sys/arch/sgi/localbus/macebus.c +++ b/sys/arch/sgi/localbus/macebus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: macebus.c,v 1.22 2007/06/18 20:24:50 miod Exp $ */ +/* $OpenBSD: macebus.c,v 1.23 2007/06/20 16:50:43 miod Exp $ */ /* * Copyright (c) 2000-2004 Opsycon AB (www.opsycon.se) @@ -560,15 +560,14 @@ macebus_intr_makemasks(void) /* * There are tty, network and disk drivers that use free() at interrupt * time, so imp > (tty | net | bio). - */ - imask[IPL_VM] |= imask[IPL_TTY] | imask[IPL_NET] | imask[IPL_BIO]; - - /* + * * Enforce a hierarchy that gives slow devices a better chance at not * dropping data. */ - imask[IPL_TTY] |= imask[IPL_NET] | imask[IPL_BIO]; imask[IPL_NET] |= imask[IPL_BIO]; + imask[IPL_TTY] |= imask[IPL_NET]; + imask[IPL_VM] |= imask[IPL_TTY]; + imask[IPL_CLOCK] |= imask[IPL_VM] | SPL_CLOCKMASK; /* * These are pseudo-levels. |