diff options
Diffstat (limited to 'sys/arch/sparc64/dev')
-rw-r--r-- | sys/arch/sparc64/dev/fhc.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/arch/sparc64/dev/fhc.c b/sys/arch/sparc64/dev/fhc.c index ca2e9031a9a..96e909e5e7f 100644 --- a/sys/arch/sparc64/dev/fhc.c +++ b/sys/arch/sparc64/dev/fhc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fhc.c,v 1.3 2004/09/24 20:50:49 jason Exp $ */ +/* $OpenBSD: fhc.c,v 1.4 2004/09/24 21:29:36 jason Exp $ */ /* * Copyright (c) 2004 Jason L. Wright (jason@thought.net) @@ -227,6 +227,7 @@ fhc_intr_establish(bus_space_tag_t t, bus_space_tag_t t0, int ihandle, struct fhc_softc *sc = t->cookie; volatile u_int64_t *intrmapptr = NULL, *intrclrptr = NULL; struct intrhand *ih; + long vec; if (level == IPL_NONE) level = INTLEV(ihandle); @@ -248,10 +249,12 @@ fhc_intr_establish(bus_space_tag_t t, bus_space_tag_t t0, int ihandle, intrregs = bus_space_vaddr(sc->sc_bt, *hp); intrmapptr = &intrregs->imap; intrclrptr = &intrregs->iclr; - } + vec = INTVEC(*intrmapptr); + } else + vec = INTVEC(ihandle); - ih = bus_intr_allocate(t0, handler, arg, INTINO(ihandle), level, - intrmapptr, intrclrptr, what); + ih = bus_intr_allocate(t0, handler, arg, vec, level, intrmapptr, + intrclrptr, what); if (ih == NULL) return (NULL); |