diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2004-04-16 06:06:47 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2004-04-16 06:06:47 +0000 |
commit | 623fdbda60a9322faa6b9888c6646a256a6caf84 (patch) | |
tree | 0b6074804d23ea160f136eb3474117ce2e0ebfe1 /sys | |
parent | 932f3bbccc6ec600e4e97c82d94ee1b3fe82a0ea (diff) |
When the abort button is pressed on 1x7, do not invoke the trap handler twice.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/mvme88k/dev/vme.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/sys/arch/mvme88k/dev/vme.c b/sys/arch/mvme88k/dev/vme.c index c91e3a17cae..9c7437dfff0 100644 --- a/sys/arch/mvme88k/dev/vme.c +++ b/sys/arch/mvme88k/dev/vme.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vme.c,v 1.30 2004/04/14 23:06:16 miod Exp $ */ +/* $OpenBSD: vme.c,v 1.31 2004/04/16 06:06:46 miod Exp $ */ /* * Copyright (c) 1999 Steve Murphree, Jr. * Copyright (c) 1995 Theo de Raadt @@ -447,7 +447,7 @@ vme2chip_init(sc) sc->sc_dev.dv_xname, vme2->vme2_master4 << 16, vme2->vme2_master4 & 0xffff0000, (vme2->vme2_master4 << 16) + (vme2->vme2_master4mod << 16), - (vme2->vme2_master4 & 0xffff0000) + (vme2->vme2_master4 & 0xffff0000)); + (vme2->vme2_master4 & 0xffff0000) + (vme2->vme2_master4mod & 0xffff0000)); /* * Map the VME irq levels to the cpu levels 1:1. * This is rather inflexible, but much easier. @@ -563,24 +563,12 @@ vme2abort(eframe) struct vmesoftc *sc = (struct vmesoftc *) vme_cd.cd_devs[0]; struct vme2reg *vme2 = (struct vme2reg *)sc->sc_vaddr; - int rc = 0; - if (vme2->vme2_irqstat & VME2_IRQ_AB) { - vme2->vme2_irqclr = VME2_IRQ_AB; - nmihand(frame); - rc = 1; - } - if (vme2->vme2_irqstat & VME2_IRQ_AB) { - vme2->vme2_irqclr = VME2_IRQ_AB; - nmihand(frame); - rc = 1; - } -#if 0 - if (vme2->vme2_irqstat & VME2_IRQ_AB == 0) { + if ((vme2->vme2_irqstat & VME2_IRQ_AB) == 0) { printf("%s: abort irq not set\n", sc->sc_dev.dv_xname); return (0); } -#endif + vme2->vme2_irqclr = VME2_IRQ_AB; nmihand(frame); return (1); |