Date: Thu, 20 May 1999 21:29:07 +0200 (CEST) From: assar@sics.se To: FreeBSD-gnats-submit@freebsd.org Subject: i386/11806: inthand_remove doesn't remove unshared interrupts correctly Message-ID: <199905201929.VAA37960@assaris.sics.se>
next in thread | raw e-mail | index | archive | help
>Number: 11806 >Category: i386 >Synopsis: inthand_remove doesn't remove unshared interrupts correctly >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu May 20 12:30:01 PDT 1999 >Closed-Date: >Last-Modified: >Originator: Assar Westerlund >Release: FreeBSD 4.0-CURRENT i386 >Organization: none >Environment: FreeBSD 4.0-current >Description: When inthand_remove is called on an unshared interrupt it doesn't manage to reset back the handler to the one handling stray interrupts. This also manifests itself with the machine panic:ing after removing pccards or sleeping it. >How-To-Repeat: zzz or remove pccard >Fix: Index: sys/i386/isa/intr_machdep.c =================================================================== RCS file: /src/fbsd-repository/src/sys/i386/isa/intr_machdep.c,v retrieving revision 1.21 diff -u -w -u -w -r1.21 intr_machdep.c --- intr_machdep.c 1999/05/04 21:18:20 1.21 +++ intr_machdep.c 1999/05/17 02:15:18 @@ -823,12 +823,11 @@ oldspl = splq(1 << irq); - /* we want to remove the list head, which was known to intr_mux */ - icu_unset(irq, intr_mux); /* check whether the new list head is the only element on list */ head = intreclist_head[irq]; if (head != NULL) { + icu_unset(irq, intr_mux); if (head->next != NULL) { /* install the multiplex handler with new list head as argument */ errcode = icu_setup(irq, intr_mux, head, 0, 0); @@ -842,6 +841,8 @@ if (errcode == 0) update_intrname(irq, head->name); } + } else { + icu_unset(irq, idesc->handler); } splx(oldspl); } >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905201929.VAA37960>