system freeze with hub

Alexander Best alexbestms at wwu.de
Wed Feb 3 17:43:33 UTC 2010


hi there. sometimes my complete system freezes when attaching a certain umass
device over the hub integrated in my tft. the only option left is to do a hard
reset. no core dump is being produced.

this is what gets printed out before the reset:

Feb  3 18:12:13 otaku root: Unknown USB device: vendor 0x0492 product 0x0140
bus uhub8
Feb  3 18:12:13 otaku kernel: ugen3.3: <Meizu   Electronics> at usbus3
Feb  3 18:12:13 otaku kernel: umass0: <Meizu   Electronics MiniPlayer, class
0/0, rev 2.00/1.00, addr 3> on usbus3
Feb  3 18:12:13 otaku kernel: umass0:  SCSI over Bulk-Only; quirks = 0x4400
Feb  3 18:12:19 otaku kernel: umass0: Get Max Lun not supported
(USB_ERR_TIMEOUT)
Feb  3 18:12:20 otaku kernel: umass0:9:0:-1: Attached to scbus9
Feb  3 18:12:20 otaku kernel: ugen3.3: <Meizu   Electronics> at usbus3
(disconnected)
Feb  3 18:12:20 otaku kernel: umass0: at uhub8, port 3, addr 3 (disconnected)
Feb  3 18:12:20 otaku kernel: (probe0:umass-sim0:0:0:0): AutoSense failed
Feb  3 18:12:20 otaku kernel: (da0:umass-sim0:0:0:0): lost device
Feb  3 18:12:20 otaku kernel: (da0:umass-sim0:0:0:0): got CAM status 0xa
Feb  3 18:12:20 otaku kernel: (da0:umass-sim0:0:0:0): fatal error, failed to
attach to device
Feb  3 18:12:20 otaku kernel: (da0:umass-sim0:0:0:0): removing device entry
Feb  3 18:12:22 otaku kernel: uhub_reattach_port: giving up port reset -
device vanished
Feb  3 18:12:24 otaku last message repeated 2 times
Feb  3 18:12:25 otaku root: Unknown USB device: vendor 0x0492 product 0x0140
bus uhub8
Feb  3 18:12:25 otaku kernel: ugen3.3: <Meizu   Electronics> at usbus3
Feb  3 18:12:25 otaku kernel: umass0: <Meizu   Electronics MiniPlayer, class
0/0, rev 2.00/1.00, addr 3> on usbus3
Feb  3 18:12:25 otaku kernel: umass0:  SCSI over Bulk-Only; quirks = 0x4400
Feb  3 18:12:30 otaku kernel: umass0: Get Max Lun not supported
(USB_ERR_TIMEOUT)


funny thing is that the device should be known since the vendor and device id
are in sys/dev/usb/usbdevs.

i'm running CURRENT/amd64 (r203410).

after a hard reset i tried reattaching the device to the hub and got no system
freeze, but the device didn't attach properly. this is what gets printed:

uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
ugen3.3: <Meizu   Electronics> at usbus3
umass0: <Meizu   Electronics MiniPlayer, class 0/0, rev 2.00/1.00, addr 3> on
usbus3
umass0:  SCSI over Bulk-Only; quirks = 0x4400
umass0: Get Max Lun not supported (USB_ERR_TIMEOUT)
umass0:9:0:-1: Attached to scbus9
ugen3.3: <Meizu   Electronics> at usbus3 (disconnected)
umass0: at uhub8, port 3, addr 3 (disconnected)
(probe0:umass-sim0:0:0:0): AutoSense failed
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): got CAM status 0xa
(da0:umass-sim0:0:0:0): fatal error, failed to attach to device
(da0:umass-sim0:0:0:0): removing device entry
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
ugen3.3: <Meizu   Electronics> at usbus3
umass0: <Meizu   Electronics MiniPlayer, class 0/0, rev 2.00/1.00, addr 3> on
usbus3
umass0:  SCSI over Bulk-Only; quirks = 0x4400
umass0: Get Max Lun not supported (USB_ERR_TIMEOUT)
umass0:9:0:-1: Attached to scbus9
ugen3.3: <Meizu   Electronics> at usbus3 (disconnected)
umass0: at uhub8, port 3, addr 3 (disconnected)
(probe0:umass-sim0:0:0:0): AutoSense failed
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): got CAM status 0xa
(da0:umass-sim0:0:0:0): fatal error, failed to attach to device
(da0:umass-sim0:0:0:0): removing device entry
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished
uhub_reattach_port: giving up port reset - device vanished

i guess this would have continued forever if i hadn't removed the device.

attaching the device to a usb port directly causes no problem at all:

ugen3.3: <Meizu   Electronics> at usbus3
umass0: <Meizu   Electronics MiniPlayer, class 0/0, rev 2.00/1.00, addr 3> on
usbus3
umass0:  SCSI over Bulk-Only; quirks = 0x4400
umass0:9:0:-1: Attached to scbus9
da0 at umass-sim0 bus 0 scbus9 target 0 lun 0
da0: <  > Removable Direct Access SCSI-2 device
da0: 40.000MB/s transfers
da0: 3864MB (7913472 512 byte sectors: 255H 63S/T 492C)

mounting the device and doing i/o works great:

mount /mnt/umass

dd if=/dev/zero of=/mnt/umass/test bs=1m count=100
100+0 records in
100+0 records out
104857600 bytes transferred in 15.036132 secs (6973708 bytes/sec)

umount /mnt/umass && mount /mnt/umass

dd if=/mnt/umass/test of=/dev/null bs=1m
100+0 records in
100+0 records out
104857600 bytes transferred in 15.910895 secs (6590302 bytes/sec)

since i have dpms enabled for my tft it enters various standby stages to save
energy. maybe this is affecting the integrated hub?

attached you'll find the output of `usbconfig dump_all_config_desc`.

cheers.
alex
-------------- next part --------------
ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0019 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0040 
    bMaxPower = 0x0000 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x00ff 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen1.1: <UHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0019 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0040 
    bMaxPower = 0x0000 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x00ff 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen2.1: <UHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0019 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0040 
    bMaxPower = 0x0000 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x00ff 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen3.1: <EHCI root HUB Intel> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0019 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0040 
    bMaxPower = 0x0000 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x00ff 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen4.1: <UHCI root HUB Intel> at usbus4, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0019 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0040 
    bMaxPower = 0x0000 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x00ff 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen5.1: <UHCI root HUB Intel> at usbus5, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0019 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0040 
    bMaxPower = 0x0000 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x00ff 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen6.1: <UHCI root HUB Intel> at usbus6, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0019 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0040 
    bMaxPower = 0x0000 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x00ff 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen7.1: <EHCI root HUB Intel> at usbus7, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0019 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0040 
    bMaxPower = 0x0000 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x00ff 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen3.2: <product 0x2514 vendor 0x0424> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0029 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00e0 
    bMaxPower = 0x0001 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0001 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0001 
        bInterval = 0x000c 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 0 Alt 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0001 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0009 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0002 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0001 
        bInterval = 0x000c 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen0.2: <Razer 1600dpi Mouse Razer> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0022 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0003  <HID-compliant mouse>
    bmAttributes = 0x00a0 
    bMaxPower = 0x0032 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0003 
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0002 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump: 
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x4f, 
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x000a 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen0.3: <Dell USB Keyboard Dell> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0022 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00a0 
    bMaxPower = 0x0023 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0003 
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0001 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump: 
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x41, 
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008 
        bInterval = 0x0018 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



ugen3.3: <MiniPlayer Meizu   Electronics> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0020 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0080 
    bMaxPower = 0x0032 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0002 
      bInterfaceClass = 0x0008 
      bInterfaceSubClass = 0x0006 
      bInterfaceProtocol = 0x0050 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0000 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0002  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0000 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 





More information about the freebsd-usb mailing list