Module Name:    src
Committed By:   macallan
Date:           Sat Feb 26 03:02:25 UTC 2022

Modified Files:
        src/sys/arch/hppa/hppa: intr.c
        src/sys/arch/hppa/include: intr.h

Log Message:
unmask interrupt bits leading to other interrupt registers
now hardware interrupts actually fire instead of being found pending by the
timer interrupt
with this SCSI throughput on my c360 is what you'd expect from an UW esiop


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/hppa/hppa/intr.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/hppa/include/intr.h

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/hppa/intr.c
diff -u src/sys/arch/hppa/hppa/intr.c:1.5 src/sys/arch/hppa/hppa/intr.c:1.6
--- src/sys/arch/hppa/hppa/intr.c:1.5	Tue Sep  7 13:24:45 2021
+++ src/sys/arch/hppa/hppa/intr.c	Sat Feb 26 03:02:25 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: intr.c,v 1.5 2021/09/07 13:24:45 andvar Exp $	*/
+/*	$NetBSD: intr.c,v 1.6 2022/02/26 03:02:25 macallan Exp $	*/
 /*	$OpenBSD: intr.c,v 1.27 2009/12/31 12:52:35 jsing Exp $	*/
 
 /*
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.5 2021/09/07 13:24:45 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.6 2022/02/26 03:02:25 macallan Exp $");
 
 #define __MUTEX_PRIVATE
 
@@ -297,7 +297,7 @@ hppa_intr_calculatemasks(struct cpu_info
 			continue;
 		mask = 0;
 		for (bit_pos = 0; bit_pos < HPPA_INTERRUPT_BITS; bit_pos++) {
-			if (IR_BIT_USED_P(ir->ir_bits_map[31 ^ bit_pos]))
+			if (!IR_BIT_UNUSED_P(ir->ir_bits_map[31 ^ bit_pos]))
 				mask |= (1 << bit_pos);
 		}
 		if (ir->ir_iscpu)

Index: src/sys/arch/hppa/include/intr.h
diff -u src/sys/arch/hppa/include/intr.h:1.1 src/sys/arch/hppa/include/intr.h:1.2
--- src/sys/arch/hppa/include/intr.h:1.1	Mon Feb 24 07:23:43 2014
+++ src/sys/arch/hppa/include/intr.h	Sat Feb 26 03:02:25 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: intr.h,v 1.1 2014/02/24 07:23:43 skrll Exp $	*/
+/*	$NetBSD: intr.h,v 1.2 2022/02/26 03:02:25 macallan Exp $	*/
 /*	$OpenBSD: intr.h,v 1.26 2009/12/29 13:11:40 jsing Exp $	*/
 
 /*-
@@ -92,6 +92,8 @@ struct hppa_interrupt_register {
 #define	IR_BIT_UNUSED		IR_BIT_REG(0)
 #define	IR_BIT_USED_P(x)	(((x) & IR_BIT_MASK) != IR_BIT_MASK)
 #define	IR_BIT_NESTED_P(x)	(((x) & IR_BIT_MASK) == IR_BIT_MASK)
+/* true if not used for interrupt or nested interrupt register */
+#define	IR_BIT_UNUSED_P(x)	((x) == IR_BIT_MASK)
 
 	int ir_bits;		/* mask of allocatable bit numbers */
 	int ir_rbits;		/* mask of reserved (for lasi/asp) bit numbers */

Reply via email to