Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/hppa/dev Mask all interrupts before reading (and cl...



details:   https://anonhg.NetBSD.org/src/rev/21cd3593b7a4
branches:  trunk
changeset: 972035:21cd3593b7a4
user:      skrll <skrll%NetBSD.org@localhost>
date:      Thu May 14 06:13:39 2020 +0000

description:
Mask all interrupts before reading (and clearing) the interrupt request
register in attach.

Picked up by an assert in the qemu code.

diffstat:

 sys/arch/hppa/dev/asp.c  |  7 +++----
 sys/arch/hppa/dev/dino.c |  7 +++----
 sys/arch/hppa/dev/lasi.c |  7 +++----
 sys/arch/hppa/dev/wax.c  |  7 +++----
 4 files changed, 12 insertions(+), 16 deletions(-)

diffs (116 lines):

diff -r 5847bb83c61a -r 21cd3593b7a4 sys/arch/hppa/dev/asp.c
--- a/sys/arch/hppa/dev/asp.c   Wed May 13 22:13:49 2020 +0000
+++ b/sys/arch/hppa/dev/asp.c   Thu May 14 06:13:39 2020 +0000
@@ -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 @@
        s = splhigh();
        viper_setintrwnd(1 << ca->ca_irq);
 
-       sc->sc_trs->asp_imr = ~0;
+       sc->sc_trs->asp_imr = 0;
        (void)sc->sc_trs->asp_irr;
-       sc->sc_trs->asp_imr = 0;
 
        /* Establish the interrupt register. */
        hppa_interrupt_register_establish(ci, &sc->sc_ir);
diff -r 5847bb83c61a -r 21cd3593b7a4 sys/arch/hppa/dev/dino.c
--- a/sys/arch/hppa/dev/dino.c  Wed May 13 22:13:49 2020 +0000
+++ b/sys/arch/hppa/dev/dino.c  Thu May 14 06:13:39 2020 +0000
@@ -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 @@
        /* interrupts guts */
        s = splhigh();
        r->icr = 0;
-       r->imr = ~0;
+       r->imr = 0;
        (void)r->irr0;
-       r->imr = 0;
        r->iar0 = ci->ci_hpa | (31 - ca->ca_irq);
        splx(s);
        /* Establish the interrupt register. */
diff -r 5847bb83c61a -r 21cd3593b7a4 sys/arch/hppa/dev/lasi.c
--- a/sys/arch/hppa/dev/lasi.c  Wed May 13 22:13:49 2020 +0000
+++ b/sys/arch/hppa/dev/lasi.c  Thu May 14 06:13:39 2020 +0000
@@ -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 @@
        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;
+       sc->sc_trs->lasi_imr = 0;
        (void)sc->sc_trs->lasi_irr;
-       sc->sc_trs->lasi_imr = 0;
 
        /* Establish the interrupt register. */
        hppa_interrupt_register_establish(ci, &sc->sc_ir);
diff -r 5847bb83c61a -r 21cd3593b7a4 sys/arch/hppa/dev/wax.c
--- a/sys/arch/hppa/dev/wax.c   Wed May 13 22:13:49 2020 +0000
+++ b/sys/arch/hppa/dev/wax.c   Thu May 14 06:13:39 2020 +0000
@@ -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 @@
        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;
+       sc->sc_regs->wax_imr = 0;
        (void)sc->sc_regs->wax_irr;
-       sc->sc_regs->wax_imr = 0;
        splx(s);
 
        /* Establish the interrupt register. */



Home | Main Index | Thread Index | Old Index