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);

Reply via email to