From 8cbe8a3ebf28ce66538485e6595539ea30098356 Mon Sep 17 00:00:00 2001 From: Julian Elischer Date: Fri, 11 Dec 1998 06:02:06 +0000 Subject: [PATCH] If we failed to probe/attach somehow, we never have a sc->sc_hcca but the present PCI probe code still thinks we are there as the pci attach can't return an error code. This means we are in the shared interrupt list, but have not been set up. If we are sharing ints with another device, ohci_intr will be called and will coredump on a NULL reference. So just return if it is called when not set up. This fixes the symptom and not the cause. The right answer is to let the PCI system know that the attach failed, or to fail earlier (in the PCI probe). The attach() is a void fn() so it can't return failure.. --- sys/dev/usb/ohci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c index 2232fad61a2..86bc3ac20f9 100644 --- a/sys/dev/usb/ohci.c +++ b/sys/dev/usb/ohci.c @@ -542,6 +542,9 @@ ohci_intr(p) u_int32_t intrs, eintrs; ohci_physaddr_t done; + if ((sc == NULL) || (sc->sc_hcca == NULL)) + return (0); + done = sc->sc_hcca->hcca_done_head; if (done != 0) { intrs = OHCI_WDH;