Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/hppa unmask interrupt bits leading to other interru...



details:   https://anonhg.NetBSD.org/src/rev/d9036ac9aab1
branches:  trunk
changeset: 362023:d9036ac9aab1
user:      macallan <macallan%NetBSD.org@localhost>
date:      Sat Feb 26 03:02:25 2022 +0000

description:
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

diffstat:

 sys/arch/hppa/hppa/intr.c    |  6 +++---
 sys/arch/hppa/include/intr.h |  4 +++-
 2 files changed, 6 insertions(+), 4 deletions(-)

diffs (45 lines):

diff -r d69f186b0bf9 -r d9036ac9aab1 sys/arch/hppa/hppa/intr.c
--- a/sys/arch/hppa/hppa/intr.c Fri Feb 25 21:52:47 2022 +0000
+++ b/sys/arch/hppa/hppa/intr.c Sat Feb 26 03:02:25 2022 +0000
@@ -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 @@
                        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)
diff -r d69f186b0bf9 -r d9036ac9aab1 sys/arch/hppa/include/intr.h
--- a/sys/arch/hppa/include/intr.h      Fri Feb 25 21:52:47 2022 +0000
+++ b/sys/arch/hppa/include/intr.h      Sat Feb 26 03:02:25 2022 +0000
@@ -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 @@
 #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 */



Home | Main Index | Thread Index | Old Index