Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/isa Do not disestablish the interrupt handler inside...



details:   https://anonhg.NetBSD.org/src/rev/b7542477aaf6
branches:  trunk
changeset: 753320:b7542477aaf6
user:      dyoung <dyoung%NetBSD.org@localhost>
date:      Mon Mar 22 22:25:26 2010 +0000

description:
Do not disestablish the interrupt handler inside of the interrupt
handler!  Stops a crash on the HP Pavilion N3270.

Cosmetic: sc->ih is a pointer, so set to NULL instead of 0.  Compare
with NULL instead of testing truth.

diffstat:

 sys/dev/isa/i82365_isasubr.c |  11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

diffs (40 lines):

diff -r 54435731860b -r b7542477aaf6 sys/dev/isa/i82365_isasubr.c
--- a/sys/dev/isa/i82365_isasubr.c      Mon Mar 22 22:22:57 2010 +0000
+++ b/sys/dev/isa/i82365_isasubr.c      Mon Mar 22 22:25:26 2010 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: i82365_isasubr.c,v 1.45 2009/09/17 18:14:41 tsutsui Exp $      */
+/*     $NetBSD: i82365_isasubr.c,v 1.46 2010/03/22 22:25:26 dyoung Exp $       */
 
 /*
  * Copyright (c) 2000 Christian E. Hopps.  All rights reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i82365_isasubr.c,v 1.45 2009/09/17 18:14:41 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i82365_isasubr.c,v 1.46 2010/03/22 22:25:26 dyoung Exp $");
 
 #define        PCICISADEBUG
 
@@ -155,9 +155,6 @@
         * unhandled level interrupts
         */
        if (++sc->intr_false > 40) {
-               isa_intr_disestablish(isc->sc_ic, sc->ih);
-               sc->ih = 0;
-
                pcic_write(h, PCIC_CSC_INTR, 0);
                delay(10);
        }
@@ -251,9 +248,9 @@
                        mask |= (1 << i);
                }
 
-               if (sc->ih) {
+               if (sc->ih != NULL) {
                        isa_intr_disestablish(ic, sc->ih);
-                       sc->ih = 0;
+                       sc->ih = NULL;
 
                        pcic_write(h, PCIC_CSC_INTR, 0);
                        delay(10);



Home | Main Index | Thread Index | Old Index