NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/55855: call pci_intr_release twice at xhci_pci_attach
>Number: 55855
>Category: kern
>Synopsis: call pci_intr_release twice at xhci_pci_attach
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Dec 09 13:45:00 +0000 2020
>Originator: Kouichi Hashikawa
>Release: NetBSD-current
>Organization:
>Environment:
>Description:
when
psc->sc_ih = pci_intr_establish_xname(pc, psc->sc_pihp[0], IPL_USB,
xhci_intr, sc, device_xname(sc->sc_dev));
failed, pci_intr_release(pc, psc->sc_pihp, 1) is called in
if (psc->sc_ih == NULL) {...}
first time, and in fail: second time.
Then, panic at kmem_size_check() at subr_kmem.c with message,
panic: kmem_free(0xffff0000fbfe7320, 8) != allocated size 18446744073709551615; overwrote?
>How-To-Repeat:
>Fix:
--- src/sys/dev/pci/xhci_pci.c-dist 2019-12-02 12:06:51.000000000 +0900
+++ src/sys/dev/pci//xhci_pci.c 2020-12-09 22:41:37.553851897 +0900
@@ -214,6 +214,7 @@
if (psc->sc_ih == NULL) {
pci_intr_release(pc, psc->sc_pihp, 1);
psc->sc_ih = NULL;
+ psc->sc_pihp = NULL;
aprint_error_dev(self, "couldn't establish interrupt");
if (intrstr != NULL)
aprint_error(" at %s", intrstr);
Home |
Main Index |
Thread Index |
Old Index