Current-Users archive

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

Crash in xhci driver



Hmmm, my system was totally idle (just running xlockmore's "maze" screen saver!), and suddenly panic()d.

Here's the traceback (manually transcribed):

	vpanic + 0x140
	cd_play_msf
	xhci_new_device + 0x821
	usbd_new_device + 0x3e
	uhub_explore + 0x2fa
	usb_discover.isra.2 + 0x4e     (interesting symbol name!)
	usb_event_thread + 0x7c

According to gdb(1), this was the KASSERT() at sys/dev/usb/xhci.c:2106

2101                    //hexdump("slot context", cp, sc->sc_ctxsz);
2102                    uint8_t addr = XHCI_SCTX_3_DEV_ADDR_GET(cp[3]);
2103                    DPRINTFN(4, "device address %u", addr, 0, 0, 0);
2104                    /* XXX ensure we know when the hardware does something
2105                       we can't yet cope with */
2106                    KASSERT(addr >= 1 && addr <= 127);
2107                    dev->ud_addr = addr;
2108                    /* XXX dev->ud_addr not necessarily unique on bus */
2109                    KASSERT(bus->ub_devices[dev->ud_addr] == NULL);
2110                    bus->ub_devices[dev->ud_addr] = dev;

No devices were being inserted (or removed), so I'm unsure why it would be calling xhci_new_device(). The comments in the source seem to say that this code only gets called when a new device has been found....

Obviously, the hardware did "some we can't yet cope with"   :)



+------------------+--------------------------+------------------------+
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:      |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd.org |
+------------------+--------------------------+------------------------+


Home | Main Index | Thread Index | Old Index