lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Tue, 01 Nov 2016 01:29:11 +0100
From:   khalasa@...p.pl (Krzysztof HaƂasa)
To:     lkml <linux-kernel@...r.kernel.org>
Cc:     linux-usb@...r.kernel.org
Subject: Super Top USB SD card reader resets and corruption - XHCI

Hi,

I came across a problem with an USB SD card reader apparently causing
USB resets and corrupting data on the card.

The reader in question is a very cheap:

14cd:1212 Super Top microSD card reader (SY-T18)
The card is an old SDHC, 32 GB, Sandisk brand.

The problems don't seem to exist now if I connect the reader to an
EHCI-equipped machine (an old Core2 duo + ICH10). I can read and write
MBs of data, however older logs suggest that this computer also had the
issue in the past (with Linux 4.6.3-300.fc24.x86_64, with both EHCI and UHCI).

I can't use it with an XHCI. Both:
Intel Corp 8 Series/C220 Series Chipset Family USB xHCI (rev 04) (prog-if 30 [XHCI])
(SandyBridge laptop with only USB2.0 connectors) and:
Intel Corp Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
(a Skylake + Z170 and USB3, though the reader is USB2) have the issue.

I have spotted the following writted to the SD card, I guess it's some
USB mass storage write command:

3d085000  55 53 42 43 ca 08 00 00  00 e0 01 00 00 00 0a 2a  |USBC...........*|
3d085010  00 00 1e 83 70 00 00 f0  00 00 00 00 00 00 00 b2  |....p...........|
3d085020  2d 00 38 00 a9 c8 f4 ab  10 8d cc 39 e1 8f 43 45  |-.8........9..CE|

I think the problem doesn't manifest itself if I don't write (RO mount)
to the SD card. However, even light writes seem to trigger the issue.

The kernels are basically recent Fedora, 4.7.4-200.fc24.x86_64,
4.7.9-200.fc24.x86_64 but it seems e.g. 4.6.3-300.fc24.x86_64 was also
affected. The one which doesn't cause problems now (EHCI) is
4.7.2-201.fc24.x86_64 (though EHCI did cause problems previously).

Could it be faulty hw?
What can I do with this?

[80125.418020] usb 1-1: new high-speed USB device number 9 using xhci_hcd
[80125.583307] usb 1-1: New USB device found, idVendor=14cd, idProduct=1212
[80125.583315] usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=2
[80125.583320] usb 1-1: Product: Mass Storage Device
[80125.583324] usb 1-1: Manufacturer: Generic
[80125.583327] usb 1-1: SerialNumber: 121220130416
[80125.585139] usb-storage 1-1:1.0: USB Mass Storage device detected
[80125.585392] scsi host6: usb-storage 1-1:1.0
[80126.586670] scsi 6:0:0:0: Direct-Access     Mass     Storage Device   1.00 PQ: 0 ANSI: 0 CCS
[80126.587547] sd 6:0:0:0: Attached scsi generic sg3 type 0
[80126.775260] sd 6:0:0:0: [sdc] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB)
[80126.775504] sd 6:0:0:0: [sdc] Write Protect is off
[80126.775510] sd 6:0:0:0: [sdc] Mode Sense: 03 00 00 00
[80126.775686] sd 6:0:0:0: [sdc] No Caching mode page found
[80126.775696] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[80126.787956]  sdc: sdc1
[80126.789309] sd 6:0:0:0: [sdc] Attached SCSI removable disk
[80396.165947] usb 1-1: reset high-speed USB device number 9 using xhci_hcd
[80408.251009] usb 1-1: USB disconnect, device number 9
[80408.256545] sd 6:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[80408.256555] sd 6:0:0:0: [sdc] tag#0 CDB: Write(10) 2a 00 00 02 82 50 00 00 f0 00
[80408.256560] blk_update_request: I/O error, dev sdc, sector 164432
[80408.256567] Buffer I/O error on dev sdc1, logical block 19530, lost async page write
[80408.256578] Buffer I/O error on dev sdc1, logical block 19531, lost async page write
[80408.256583] Buffer I/O error on dev sdc1, logical block 19532, lost async page write
[80408.256587] Buffer I/O error on dev sdc1, logical block 19533, lost async page write
[80408.256592] Buffer I/O error on dev sdc1, logical block 19534, lost async page write
[80408.256596] Buffer I/O error on dev sdc1, logical block 19535, lost async page write
[80408.256600] Buffer I/O error on dev sdc1, logical block 19536, lost async page write
[80408.256604] Buffer I/O error on dev sdc1, logical block 19537, lost async page write
[80408.256608] Buffer I/O error on dev sdc1, logical block 19538, lost async page write
[80408.256611] Buffer I/O error on dev sdc1, logical block 19539, lost async page write
[80408.340407] VFS: Dirty inode writeback failed for block device sdc1 (err=-5).
[80408.618642] usb 1-1: new high-speed USB device number 10 using xhci_hcd
[80408.783479] usb 1-1: New USB device found, idVendor=14cd, idProduct=1212
[80408.783487] usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=2
[80408.783492] usb 1-1: Product: Mass Storage Device
[80408.783496] usb 1-1: Manufacturer: Generic
[80408.784034] usb-storage 1-1:1.0: USB Mass Storage device detected
[80408.784253] scsi host6: usb-storage 1-1:1.0
[80409.786335] scsi 6:0:0:0: Direct-Access     Mass     Storage Device   1.00 PQ: 0 ANSI: 0 CCS
[80409.787089] sd 6:0:0:0: Attached scsi generic sg3 type 0
[80409.975129] sd 6:0:0:0: [sdc] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB)
[80409.975380] sd 6:0:0:0: [sdc] Write Protect is off
[80409.975389] sd 6:0:0:0: [sdc] Mode Sense: 03 00 00 00
[80409.976494] sd 6:0:0:0: [sdc] No Caching mode page found
[80409.976503] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[80409.988785]  sdc: sdc1
[80409.990105] sd 6:0:0:0: [sdc] Attached SCSI removable disk
[80618.854694] usb 1-1: reset high-speed USB device number 10 using xhci_hcd
[80649.844604] usb 1-1: reset high-speed USB device number 10 using xhci_hcd
[80650.181794] usb 1-1: reset high-speed USB device number 10 using xhci_hcd
[80662.195423] usb 1-1: USB disconnect, device number 10
[80662.201162] sd 6:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[80662.201172] sd 6:0:0:0: [sdc] tag#0 CDB: Write(10) 2a 00 00 02 8a 50 00 00 f0 00
[80662.201177] blk_update_request: I/O error, dev sdc, sector 166480
[80662.203472] sd 6:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
[80662.203478] sd 6:0:0:0: [sdc] tag#0 CDB: Write(10) 2a 00 00 02 8b 40 00 00 f0 00
[80662.203481] blk_update_request: I/O error, dev sdc, sector 166720


Bus 001 Device 015: ID 14cd:1212 Super Top microSD card reader (SY-T18)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x14cd Super Top
  idProduct          0x1212 microSD card reader (SY-T18)
  bcdDevice            1.00
  iManufacturer           1 Generic
  iProduct                3 Mass Storage Device
  iSerial                 2 121220130416
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              250mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0xff00
  (Bus Powered)

-- 
Krzysztof Halasa

Industrial Research Institute for Automation and Measurements PIAP
Al. Jerozolimskie 202, 02-486 Warsaw, Poland

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ