diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2009-05-21 16:25:27 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2009-05-21 16:25:27 +0000 |
commit | 17de17646f8e68cae61a0906428351c5e9571d69 (patch) | |
tree | ca3a19284e8a99f19c97a7f14a231ae569a1c3d3 /sys | |
parent | 631c46cb77be0f687af1cce71918800b7928d281 (diff) |
If we had interrupts to service and interrupts to mark as pending, after
servicing interrupts, correctly mask the other (marked as pending)
interrupts in imr. Otherwise we get another interrupt immediately for nothing
(which updates imr correctly the second time).
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/sgi/sgi/ip27_machdep.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/arch/sgi/sgi/ip27_machdep.c b/sys/arch/sgi/sgi/ip27_machdep.c index 429ee8db024..831c6046bff 100644 --- a/sys/arch/sgi/sgi/ip27_machdep.c +++ b/sys/arch/sgi/sgi/ip27_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip27_machdep.c,v 1.6 2009/05/15 22:59:07 miod Exp $ */ +/* $OpenBSD: ip27_machdep.c,v 1.7 2009/05/21 16:25:26 miod Exp $ */ /* * Copyright (c) 2008, 2009 Miodrag Vallat. @@ -80,7 +80,8 @@ ip27_setup() /* * Initialize the early console parameters. * This assumes BRIDGE is on widget 8 and IOC3 is mapped in - * memory space at address 0x600000. + * memory space at address 0x600000. Although on IP35 it is + * actually widget 15... * * XXX And that 0x600000 should be computed from the first BAR * XXX of the IOC3 in pci configuration space. Joy. I'll get there @@ -374,6 +375,7 @@ ip27_hub_intr_handler(intrmask_t hwpend, struct trap_frame *frame) if ((mask = isr & frame->cpl) != 0) { atomic_setbits_int(&ipending, mask); isr &= ~mask; + imr &= ~mask; } /* |