I think I found this bug is related to the "ehci" driver in DFly.
I took some efforts to make DFly run on my X220. Then I try to read the USB (2.0) stick from it, but it doesn't work with "ehci" driver loaded.
I tried following cases:
1. load "ehci" and "xhci"
2. load "ehci" only
3. load "xhci" only
4. neither "ehci" nor "xhci" loaded (i.e., only "ohci" which is built-in to the kernel)
The USB stick has "I/O error" for cases 1 and 2 (with "ehci"), but works for cases 3 and 4 (without "ehci")
The following is the dmesg for loading the "ehci" driver (I got these messages by first unloading and then loading the "ehci" driver):
------------------------------------------------------
Sep 2 00:20:28 aly-x200 kernel: ehci0: <Intel 82801I (ICH9) USB 2.0 controller> mem 0xf2826c00-0xf2826fff irq 23 at device 26.7 on pci0
Sep 2 00:20:28 aly-x200 kernel: usbus3: EHCI version 1.0
Sep 2 00:20:28 aly-x200 kernel: usbus3 on ehci0
Sep 2 00:20:38 aly-x200 kernel: WARNING waiting for the following device to finish configuring:
Sep 2 00:20:38 aly-x200 kernel: usb: func=0xffffffff808c4d37 arg=0xffffffe094e92cd8
Sep 2 00:20:38 aly-x200 kernel: Giving up, interrupt routing is probably hosed
Sep 2 00:20:38 aly-x200 kernel: usbus3: 480Mbps High Speed USB v2.0
Sep 2 00:20:38 aly-x200 kernel: ugen3.1: <Intel> at usbus3
Sep 2 00:20:38 aly-x200 kernel: ehci1: <Intel 82801I (ICH9) USB 2.0 controller> mem 0xf2827000-0xf28273ff irq 19 at device 29.7 on pci0
Sep 2 00:20:38 aly-x200 kernel: uhub3: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3
Sep 2 00:20:38 aly-x200 kernel: usbus7: EHCI version 1.0
Sep 2 00:20:38 aly-x200 kernel: usbus7 on ehci1
Sep 2 00:20:40 aly-x200 kernel: uhub3: 6 ports with 6 removable, self powered
Sep 2 00:20:48 aly-x200 kernel: WARNING waiting for the following device to finish configuring:
Sep 2 00:20:48 aly-x200 kernel: usb: func=0xffffffff808c4d37 arg=0xffffffe094e9bcd8
Sep 2 00:20:48 aly-x200 kernel: Giving up, interrupt routing is probably hosed
Sep 2 00:20:48 aly-x200 kernel: usbus7: 480Mbps High Speed USB v2.0
Sep 2 00:20:48 aly-x200 kernel: ugen7.1: <Intel> at usbus7
Sep 2 00:20:48 aly-x200 kernel: uhub7: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus7
Sep 2 00:20:51 aly-x200 kernel: uhub7: 6 ports with 6 removable, self powered
------------------------------------------------------
This is the attaching messages of the USB stick with "ehci" driver loaded:
------------------------------------------------------
Sep 2 00:15:55 aly-x200 kernel: ugen7.2: <Netac> at usbus7
Sep 2 00:15:55 aly-x200 kernel: umass0: <Netac OnlyDisk, class 0/0, rev 2.00/11.00, add
Sep 2 00:15:55 aly-x200 kernel: r 2>
Sep 2 00:15:55 aly-x200 kernel: on us
Sep 2 00:15:55 aly-x200 kernel: bus7
Sep 2 00:15:55 aly-x200 kernel: da8 at umass-sim0 bus 0
Sep 2 00:15:55 aly-x200 kernel: target
Sep 2 00:15:55 aly-x200 kernel: 0 lun
Sep 2 00:15:55 aly-x200 kernel: 0
Sep 2 00:15:55 aly-x200 kernel: da8: <Netac OnlyDisk 1100> Removable Direct Access SCSI-4 device
Sep 2 00:15:55 aly-x200 kernel: da8: Serial Number AATN6P9DAV56PURL
Sep 2 00:15:55 aly-x200 kernel: da8: 40.000MB/s transfers
Sep 2 00:15:55 aly-x200 kernel: da8: 15474MB (31690752 512 byte sectors: 255H 63S/T 1972C)
------------------------------------------------------
Then, the following messages also appeared in "/var/log/messages":
------------------------------------------------------
Sep 2 00:16:17 aly-x200 kernel: da8: reading primary partition table: error accessing offset 000000000000 for 512
Sep 2 00:16:45 aly-x200 kernel: da8: open removable media: no media present
Sep 2 00:17:29 aly-x200 kernel: da8: open removable media: no media present
------------------------------------------------------
This is the attaching messages of the USB stick WITHOUT "ehci" driver loaded:
------------------------------------------------------
Sep 2 00:18:47 aly-x200 kernel: ugen4.2: <Netac> at usbus4
Sep 2 00:18:47 aly-x200 kernel: umass0: <Netac OnlyDisk, class 0/0, rev 2.00/11.00, addr 2> on usbus4
Sep 2 00:18:48 aly-x200 kernel: da8 at umass-sim0 bus 0 target 0 lun 0
Sep 2 00:18:48 aly-x200 kernel: da8: <Netac OnlyDisk 1100> Removable Direct Access SCSI-4 device
Sep 2 00:18:48 aly-x200 kernel: da8: Serial Number AATN6P9DAV56PURL
Sep 2 00:18:48 aly-x200 kernel: da8: 1.000MB/s transfers
Sep 2 00:18:48 aly-x200 kernel: da8: 15474MB (31690752 512 byte sectors: 255H 63S/T 1972C)
------------------------------------------------------
Cheers,
Aly