What does a failing USB-to-SATA bridge look like in the kernel log, and how do you tell it from a failing disk?
Published 2026-10-11
In the public logs opened here, the repeating pattern of uas_eh_abort_handler lines followed by a SuperSpeed USB device reset is a fault between the host and the bridge chip, not evidence about the disk behind it: the Linux UAS driver cannot send a real abort, so every timed-out command ends in a USB reset of the whole enclosure. The kernel's own quirk list shows the scale of the known problem: 8 of the 24 entries in unusual_uas.h (33%, derived) simply switch UAS off for one VID:PID, and 9 of 24 (37.5%, derived) stop the driver asking the bridge for its supported opcodes. In one reported ASMedia-bridge case a read error at 7505.098 s was followed by the abort 30.2 s later (derived from two log timestamps) and then by Sense Key Not Ready, Medium not present; after UAS was disabled the same 1.5 TB disk read at about 125 MB/s but the log still showed 953 USB resets. smartmontools lists 8 bridge-specific device types because the bridge, not the disk, decides whether SMART commands pass, and warns that a wrong choice can produce I/O errors and drop the drive. No source opened here gives a failure rate for bridge chips.
- Question
- Which kernel log lines and which published workarounds identify a fault in the USB host-to-bridge path (UAS command timeouts, USB resets, bridge quirks), and what do SMART tools see through such a bridge?
- Evidence types
- Kernel source tables of bridge quirks, the UAS driver's error-handling code, three published dmesg excerpts, and the smartctl manual's list of bridge pass-through types
- Out of scope
- Disk-side media faults behind a working bridge (see the SMART, SCSI sense and SATA/SAS link notes), USB flash media, and any attempt to read or recover data from other people's drives
- Access date
- All sources opened on 2026-10-11; kernel files are the master branch as served on that date
What the kernel's UAS quirk list records
| Flag in unusual_uas.h | Entries (count) | Share of 24 (%) | What the flag changes, per the kernel parameters page | Source |
|---|---|---|---|---|
| US_FL_NO_REPORT_OPCODES | 9 | 37.5 | Do not send the REPORT SUPPORTED OPERATION CODES command (UAS only) | Kernel parameters: usb-storage.quirks |
| US_FL_IGNORE_UAS | 8 | 33.3 | Do not bind the uas driver; use plain usb-storage for this VID:PID | Kernel parameters: usb-storage.quirks |
| US_FL_NO_ATA_1X | 6 | 25.0 | Do not allow ATA(12) and ATA(16) pass-through commands (UAS only) | Kernel parameters: usb-storage.quirks |
| US_FL_NO_SAME | 2 | 8.3 | Do not use WRITE SAME (UAS only) | Kernel parameters: usb-storage.quirks |
| US_FL_BROKEN_FUA | 2 | 8.3 | Treat the Force Unit Access bit as broken (flag name only; not described on the parameters page) | unusual_uas.h (Linux) |
| US_FL_NO_REPORT_LUNS, US_FL_IGNORE_RESIDUE, US_FL_ALWAYS_SYNC | 1 each | 4.2 each | Skip REPORT LUNS (UAS only); ignore bogus residue values; always issue SYNCHRONIZE CACHE | Kernel parameters: usb-storage.quirks |
Kernel log lines in three published USB-bridge failures
| Log line or event | Where it appeared | Time or interval (s) | What the source says it indicates | Source |
|---|---|---|---|---|
| data cmplt err -71 uas-tag 1 inflight: CMD, then Read(10) | 2015 ASM1153E case, stress with dd | first error at 7505.098 | Hans de Goede: indicates a USB 3 signalling error; suggests trying a better, short cable | linux-usb ASM1153E thread, 2015 |
| uas_eh_abort_handler 0 uas-tag 2 inflight: CMD IN | 2015 ASM1153E case | 7535.253, i.e. 30.2 after the first error (derived) | Command timed out; the driver gives up on the tag | linux-usb ASM1153E thread, 2015 |
| uas_eh_bus_reset_handler start, then reset SuperSpeed USB device number 2 using xhci_hcd | 2015 ASM1153E case | 7535.253 to 7535.367: 0.11 (derived) | Whole-device USB reset; afterwards Sense Key Not Ready, Add. Sense: Medium not present on the following Read(10) commands | linux-usb ASM1153E thread, 2015 |
| uas_eh_abort_handler on CDB Mode Sense(6) 1a 00 08 00 04 00, then uas_eh_device_reset_handler start | 2024 LaCie Rugged FW USB3 posting | abort 87.366, reset success 87.540: 0.17 (derived); next reset starts 118.103, 30.6 later (derived) | Patch text: the disk fails on a USB 3 port, falling back to mass storage resolves it; UAS hangs during Mode Sense(6) | linux-usb patch, 2024 |
| continuous SCSI bus resets by default (Seagate 0bc2:2322, UAS) | Launchpad bug 1584557, opened 2016-05-23 | not timed in the report text | Reporter: disabling UAS makes the device work; one commenter blames autosuspend | Launchpad bug 1584557 |
What happened after the bridge was switched to plain usb-storage
| Case | Disk behind the bridge | Result with UAS off | What stayed wrong | Source |
|---|---|---|---|---|
| LC-Power enclosure, ASMedia 174c:55aa, 2015 | Seagate Barracuda 7200.11, 1.5 TB (1.36 TiB) | Whole disk read with dd at about 125 MB/s with no failure | 953 USB resets still logged (poster's count); Hans de Goede: still an issue | linux-usb ASM1153E thread, 2015 |
| Seagate 0bc2:2322, Ubuntu (xenial), 2016 | Not named in the opened text | Reporter: works fine | Another commenter: resets still happen and I/O is interrupted | Launchpad bug 1584557 |
| LaCie Rugged FW USB3, 2024 | 500 GB (466 GiB) per the log | Patch text: falling back to mass storage resolves this issue | Not reported in the posting | linux-usb patch, 2024 |
| Apricorn USB3 dongle, firmware 1.28 | Not stated | Entry sets IGNORE_UAS | Code comment: sometimes returns USBSUSBSUSBS in response to SCSI commands in UAS mode | unusual_uas.h (Linux) |
What SMART tooling needs from the bridge
| Manual statement | Bridge or device type named | Count (types) | Consequence stated | Source |
|---|---|---|---|---|
| Bridge-specific pass-through device types | usbasm1352r, usbcypress, usbjmicron, usbprolific, usbsunplus, sntasmedia, sntjmicron, sntrealtek | 8 | Each is a separate device type in the manual; usbcypress is described as using a proprietary SCSI pass-through command (ATACB) | smartctl(8) manual |
| usbjmicron with the x option | JMicron USB to PATA/SATA bridge | 1 | CAUTION: using x on a bridge that does not support it results in I/O errors and may disconnect the drive; the same applies to a wrong PORT | smartctl(8) manual |
| usbcypress with a non-default SCSI opcode | Cypress USB to PATA bridge | 1 | Manual: you run the risk of damage to the device or filesystems on it | smartctl(8) manual |
| SMART health status via SMART RETURN STATUS | Any ATA disk behind a bridge or RAID layer | 1 | The result may be unknown because of limitations or bugs in a layer such as USB bridge firmware; smartctl then checks whether any pre-failure attribute is at or below its threshold | smartctl(8) manual |
Reading the numbers
The answer. When a USB-attached disk shows repeating abort lines followed by a SuperSpeed USB reset, the sources opened here treat it as a host-to-bridge fault first. The reason is in the driver: the comment above uas_eh_abort_handler in uas.c says the driver does not support actually sending an abort to the device, so the handler always fails, and the next escalation in the same file resets the whole USB device (usb_reset_device) and fails every pending command with DID_RESET. A reset of that kind says nothing about whether the disk has bad sectors.
What the numbers show. In the one fully quoted case (2015, ASMedia 174c:55aa), the first read error was at 7505.098 s and the abort at 7535.253 s, 30.2 s later (derived). The 2024 LaCie excerpt shows the same shape: a Mode Sense(6) command aborted at 87.366 s, a reset that finished 0.17 s later (derived), and another reset starting at 118.103 s, about 30.6 s after that (derived). Two intervals near 30 s in two unrelated devices fit a fixed command timeout, but the sources do not state the timeout value, so this page does not assert one.
Why the disk is not automatically the suspect. After the 2015 reset the bridge returned Not Ready, Medium not present for a disk that was still attached and, after UAS was disabled, read its entire 1.5 TB at about 125 MB/s. The same drive therefore passed a full-surface read behind the same bridge under a different driver. That is one drive, one pass, one poster; it shows the bridge or the UAS path can fail without the disk, not that the disk is healthy.
What the workaround does and does not fix. Disabling UAS per VID:PID (quirk letter u) is the remedy in the kernel table (8 of 24 entries), in the Launchpad bug and in the 2024 patch, but it is not a cure: the 2015 poster still logged 953 resets, a Launchpad commenter reported resets continued, and the Launchpad thread also records commenters for whom a different kernel or a different host made the problem disappear. A quirk list also cannot identify the bridge chip: in 2015 the enclosure reported ASM1051 to lsusb while the poster says the board carried an ASM1153E, and the kernel's unusual_devs.h entry for the same 174c:55aa ID applies only to bcdDevice 0x0100 and names an AS2105.
What SMART can and cannot say through a bridge. smartctl needs a bridge-specific pass-through for several chips and warns that a wrong choice causes I/O errors and may disconnect the drive, so a failed SMART query over USB is a statement about the bridge until a direct SATA connection says otherwise. When the bridge swallows SMART RETURN STATUS, smartctl falls back to comparing pre-failure attribute values with thresholds, which is a weaker test than the drive's own verdict. Read the drive's attributes directly where possible, and compare them with the SMART, SCSI sense and SATA/SAS link notes before concluding anything about the disk.
Related: the SMART failure-signal note, SCSI sense and kernel log signatures and SATA and SAS link failure signatures.
Method
Everything here was read on 2026-10-11 from pages opened that day: the Linux kernel source files drivers/usb/storage/unusual_uas.h, unusual_devs.h and uas.c (master, fetched from raw.githubusercontent.com); the kernel's admin-guide kernel-parameters page (usb-storage.quirks); the smartctl(8) manual source from the smartmontools repository (master); a linux-usb patch posting of 9 February 2024 that includes a dmesg excerpt; a linux-usb list message of 16 November 2015 that quotes a full dmesg and a reply by Hans de Goede; and Ubuntu Launchpad bug 1584557 (opened 23 May 2016, comments to 2017). Counts of quirk entries and flags are my own tallies of the fetched files with a script: 24 UNUSUAL_DEV entries in unusual_uas.h, and 322 lines starting with UNUSUAL_DEV in unusual_devs.h of which 320 were parsed into complete entries for the flag tally. Ratios marked derived are my own division of two published numbers; time intervals marked derived are differences between two printed kernel timestamps. A claim is stated as fact only where a source prints it as a log line, a code comment or a manual sentence; statements by mailing-list posters and bug commenters are labelled as such.
Limits
This page measures no failure rate: no source opened here says how many bridge chips or enclosures fail, so it cannot rank bridge vendors or say how common the pattern is. The kernel quirk lists record only devices that someone reported and a maintainer accepted; a short list is not evidence that other bridges are fine. The three log sets come from different kernels (4.3 in 2015, 4.4 to 4.8 in the Launchpad thread, and a 2024 posting with no kernel version printed in the excerpt), and the UAS driver's reset handler names have changed between them: the older logs print uas_eh_bus_reset_handler or uas_eh_device_reset_handler, the current uas.c in the master tree I opened prints uas_eh_host_reset_handler. Whether the bridge, the cable, the enclosure power supply, the USB host controller or the disk's own firmware caused any one case is not established by the logs: the posters and Hans de Goede name a possible cable or power problem as a suggestion, and the ASM1153E identification in the 2015 case is the poster's own statement (the device reports ASM1051 to lsusb). The 2024 LaCie patch entry (0x059f:0x104b) was a posting; it does not appear in the unusual_uas.h opened today, so its merge status is unknown. The Launchpad thread contains mixed outcomes (one commenter saw no resets on upstream 4.7 and another saw none on Ubuntu 16.10; the autosuspend explanation is one commenter's reading of his logs). I could not open the smartmontools wiki page on SAT with UAS because the site returned an anti-bot page, so nothing is taken from it. Nothing here addresses disk-side faults behind a healthy bridge, and it does not cover USB flash drives or SD readers.
Sources
- 01Linux kernel: drivers/usb/storage/unusual_uas.h (master) · accessed 2026-10-11
- 02Linux kernel: drivers/usb/storage/unusual_devs.h (master) · accessed 2026-10-11
- 03Linux kernel: drivers/usb/storage/uas.c (master) · accessed 2026-10-11
- 04The Linux kernel documentation: The kernel's command-line parameters, usb-storage.quirks · accessed 2026-10-11
- 05smartmontools: smartctl.8.in (master), device types and health status · accessed 2026-10-11
- 06[PATCH] usb-storage: Ignore UAS for LaCie Rugged FW USB3, linux-usb, 9 February 2024 · accessed 2026-10-11
- 07Re: [Workaround] ASM1153E : ASM 174c:55aa problems re-loaded [quirk needed], linux-usb, 16 November 2015 · accessed 2026-10-11
- 08Ubuntu Launchpad bug 1584557: Seagate external drive causes SCSI bus resets when UAS enabled · accessed 2026-10-11