Re: linux-next crash in xhci_add_ep_to_interval

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

 



On Thu, Jun 5, 2014 at 9:24 AM,  <Valdis.Kletnieks@xxxxxx> wrote:
> On Thu, 05 Jun 2014 08:55:07 -0700, Dan Williams said:
>
>> > On a working boot, it progresses:
>>
>> Is a working boot after reverting that change, or it intermittently
>> works?  If it's the latter I'm not sure I trust the bisect result,
>> yet.
>
> Oh, it's a 100% guaranteed crash.  The following is from a good kernel:
>
>> > [    3.823139] usb 3-4.1: New USB device found, idVendor=0e8f, idProduct=0020
>> > [    3.823160] usb 3-4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
>> > [    3.823174] usb 3-4.1: Product: PS2toUSB Adapter
>> > [    3.823187] usb 3-4.1: Manufacturer: GASIA
>> > [    3.842836] input: GASIA PS2toUSB Adapter as /devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.1/3-4.1:1.0/0003:0E8F:0020.0001/input/input14
>> > [    3.848598] hid-generic 0003:0E8F:0020.0001: input,hidraw0: USB HID v1.10 Keyboard [GASIA PS2toUSB Adapter] on usb-0000:00:14.0-4.1/input0
>> > [    3.863592] input: GASIA PS2toUSB Adapter as /devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.1/3-4.1:1.1/0003:0E8F:0020.0002/input/input15
>> > [    3.878608] hid-generic 0003:0E8F:0020.0002: input,hidraw1: USB HID v1.10 Mouse [GASIA PS2toUSB Adapter] on usb-0000:00:14.0-4.1/input1
>
> I'm booted on next-20140519
>
>
>> It's a really odd place to crash relative to the peer port changes
>> since those do not affect any xhci internals.  At first glance this
>> also does not look related to the command queue changes.  Mathias, any
>> ideas?
>>
>> Valdis, can you get me the output of:
>>
>> $ gdb drivers/usb/host/xhci-hcd.ko
>> (gdb) li *(xhci_add_ep_to_interval_table+0xc8)
>
> (gdb) li *(xhci_add_ep_to_interval_table+0xc8)
> 0x10c9 is in xhci_add_ep_to_interval_table (drivers/usb/host/xhci.c:2446).
> 2441                    normalized_interval = ep_bw->ep_interval - 3;
> 2442
> 2443            if (normalized_interval == 0)
> 2444                    bw_table->interval0_esit_payload += ep_bw->max_esit_payload;
> 2445            interval_bw = &bw_table->interval_bw[normalized_interval];
> 2446            interval_bw->num_packets += ep_bw->num_packets;
> 2447            switch (udev->speed) {
> 2448            case USB_SPEED_LOW:
> 2449                    interval_bw->overhead[LS_OVERHEAD_TYPE] += 1;
> 2450                    break;
>
> Note that's as of the end of the git bisect.  Looks like it picked up
> a duff value for interval_bw somehow, but I have no idea why.
>
> Yeah, you're right, the bisected commit doesn't seem to have anything
> to do with it.  Weird. ;)

Actually, on second look I bet xhci_alloc_tt_info() is being called
while hdev->maxchild is not set.  Let me throw together a debug
patch...
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux