Module Name: src Committed By: skrll Date: Sat Apr 24 10:41:22 UTC 2010
Modified Files: src/sys/arch/hp700/dev: apic.c Log Message: Only post EOI once for shared interrupts. From Mark Kettenis. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/arch/hp700/dev/apic.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/hp700/dev/apic.c diff -u src/sys/arch/hp700/dev/apic.c:1.6 src/sys/arch/hp700/dev/apic.c:1.7 --- src/sys/arch/hp700/dev/apic.c:1.6 Tue Jan 5 13:20:29 2010 +++ src/sys/arch/hp700/dev/apic.c Sat Apr 24 10:41:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: apic.c,v 1.6 2010/01/05 13:20:29 mbalmer Exp $ */ +/* $NetBSD: apic.c,v 1.7 2010/04/24 10:41:21 skrll Exp $ */ /* $OpenBSD: apic.c,v 1.7 2007/10/06 23:50:54 krw Exp $ */ @@ -235,19 +235,19 @@ struct apic_iv *iv = v; struct elroy_softc *sc = iv->sc; volatile struct elroy_regs *r = sc->sc_regs; + uint32_t irq = APIC_INT_IRQ(iv->ih); int claimed = 0; while (iv) { if (iv->handler(iv->arg)) { if (iv->cnt) iv->cnt->ev_count++; - /* Signal EOI. */ - elroy_write32(&r->apic_eoi, - htole32((31 - APIC_INT_IRQ(iv->ih)) & APIC_ENT0_VEC)); claimed = 1; } iv = iv->next; } + /* Signal EOI. */ + elroy_write32(&r->apic_eoi, htole32((31 - irq) & APIC_ENT0_VEC)); return (claimed); }