Module Name: src Committed By: skrll Date: Thu May 14 06:13:39 UTC 2020
Modified Files: src/sys/arch/hppa/dev: asp.c dino.c lasi.c wax.c Log Message: Mask all interrupts before reading (and clearing) the interrupt request register in attach. Picked up by an assert in the qemu code. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/hppa/dev/asp.c \ src/sys/arch/hppa/dev/wax.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/hppa/dev/dino.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/hppa/dev/lasi.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/hppa/dev/asp.c diff -u src/sys/arch/hppa/dev/asp.c:1.1 src/sys/arch/hppa/dev/asp.c:1.2 --- src/sys/arch/hppa/dev/asp.c:1.1 Mon Feb 24 07:23:42 2014 +++ src/sys/arch/hppa/dev/asp.c Thu May 14 06:13:39 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: asp.c,v 1.1 2014/02/24 07:23:42 skrll Exp $ */ +/* $NetBSD: asp.c,v 1.2 2020/05/14 06:13:39 skrll Exp $ */ /* $OpenBSD: asp.c,v 1.5 2000/02/09 05:04:22 mickey Exp $ */ @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: asp.c,v 1.1 2014/02/24 07:23:42 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: asp.c,v 1.2 2020/05/14 06:13:39 skrll Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -243,9 +243,8 @@ aspattach(device_t parent, device_t self s = splhigh(); viper_setintrwnd(1 << ca->ca_irq); - sc->sc_trs->asp_imr = ~0; - (void)sc->sc_trs->asp_irr; sc->sc_trs->asp_imr = 0; + (void)sc->sc_trs->asp_irr; /* Establish the interrupt register. */ hppa_interrupt_register_establish(ci, &sc->sc_ir); Index: src/sys/arch/hppa/dev/wax.c diff -u src/sys/arch/hppa/dev/wax.c:1.1 src/sys/arch/hppa/dev/wax.c:1.2 --- src/sys/arch/hppa/dev/wax.c:1.1 Mon Feb 24 07:23:43 2014 +++ src/sys/arch/hppa/dev/wax.c Thu May 14 06:13:39 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: wax.c,v 1.1 2014/02/24 07:23:43 skrll Exp $ */ +/* $NetBSD: wax.c,v 1.2 2020/05/14 06:13:39 skrll Exp $ */ /* $OpenBSD: wax.c,v 1.1 1998/11/23 03:04:10 mickey Exp $ */ @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: wax.c,v 1.1 2014/02/24 07:23:43 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wax.c,v 1.2 2020/05/14 06:13:39 skrll Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -139,9 +139,8 @@ waxattach(device_t parent, device_t self s = splhigh(); sc->sc_regs->wax_iar = ci->ci_hpa | (31 - ca->ca_irq); sc->sc_regs->wax_icr = 0; - sc->sc_regs->wax_imr = ~0U; - (void)sc->sc_regs->wax_irr; sc->sc_regs->wax_imr = 0; + (void)sc->sc_regs->wax_irr; splx(s); /* Establish the interrupt register. */ Index: src/sys/arch/hppa/dev/dino.c diff -u src/sys/arch/hppa/dev/dino.c:1.4 src/sys/arch/hppa/dev/dino.c:1.5 --- src/sys/arch/hppa/dev/dino.c:1.4 Tue Apr 16 06:45:04 2019 +++ src/sys/arch/hppa/dev/dino.c Thu May 14 06:13:39 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: dino.c,v 1.4 2019/04/16 06:45:04 skrll Exp $ */ +/* $NetBSD: dino.c,v 1.5 2020/05/14 06:13:39 skrll Exp $ */ /* $OpenBSD: dino.c,v 1.5 2004/02/13 20:39:31 mickey Exp $ */ @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dino.c,v 1.4 2019/04/16 06:45:04 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dino.c,v 1.5 2020/05/14 06:13:39 skrll Exp $"); /* #include "cardbus.h" */ @@ -1655,9 +1655,8 @@ dinoattach(device_t parent, device_t sel /* interrupts guts */ s = splhigh(); r->icr = 0; - r->imr = ~0; - (void)r->irr0; r->imr = 0; + (void)r->irr0; r->iar0 = ci->ci_hpa | (31 - ca->ca_irq); splx(s); /* Establish the interrupt register. */ Index: src/sys/arch/hppa/dev/lasi.c diff -u src/sys/arch/hppa/dev/lasi.c:1.2 src/sys/arch/hppa/dev/lasi.c:1.3 --- src/sys/arch/hppa/dev/lasi.c:1.2 Mon Apr 15 20:40:37 2019 +++ src/sys/arch/hppa/dev/lasi.c Thu May 14 06:13:39 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: lasi.c,v 1.2 2019/04/15 20:40:37 skrll Exp $ */ +/* $NetBSD: lasi.c,v 1.3 2020/05/14 06:13:39 skrll Exp $ */ /* $OpenBSD: lasi.c,v 1.4 2001/06/09 03:57:19 mickey Exp $ */ @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lasi.c,v 1.2 2019/04/15 20:40:37 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lasi.c,v 1.3 2020/05/14 06:13:39 skrll Exp $"); #undef LASIDEBUG @@ -187,9 +187,8 @@ lasiattach(device_t parent, device_t sel s = splhigh(); sc->sc_trs->lasi_iar = ci->ci_hpa | (31 - ca->ca_irq); sc->sc_trs->lasi_icr = 0; - sc->sc_trs->lasi_imr = ~0U; - (void)sc->sc_trs->lasi_irr; sc->sc_trs->lasi_imr = 0; + (void)sc->sc_trs->lasi_irr; /* Establish the interrupt register. */ hppa_interrupt_register_establish(ci, &sc->sc_ir);