Skip to content

Stat analysis

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

Tally of the 24 UNUSUAL_DEV entries in unusual_uas.h (master, opened 2026-10-11). Some entries carry two flags, so counts add to more than 24. Shares are entries divided by 24 and are derived. Units are entries (count) and percent of entries (%).
Flag in unusual_uas.hEntries (count)Share of 24 (%)What the flag changes, per the kernel parameters pageSource
US_FL_NO_REPORT_OPCODES937.5Do not send the REPORT SUPPORTED OPERATION CODES command (UAS only)Kernel parameters: usb-storage.quirks
US_FL_IGNORE_UAS833.3Do not bind the uas driver; use plain usb-storage for this VID:PIDKernel parameters: usb-storage.quirks
US_FL_NO_ATA_1X625.0Do not allow ATA(12) and ATA(16) pass-through commands (UAS only)Kernel parameters: usb-storage.quirks
US_FL_NO_SAME28.3Do not use WRITE SAME (UAS only)Kernel parameters: usb-storage.quirks
US_FL_BROKEN_FUA28.3Treat 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_SYNC1 each4.2 eachSkip REPORT LUNS (UAS only); ignore bogus residue values; always issue SYNCHRONIZE CACHEKernel parameters: usb-storage.quirks

Kernel log lines in three published USB-bridge failures

Lines and intervals copied or derived from the three dmesg excerpts. Times are kernel timestamps in seconds (s); intervals are differences between two printed timestamps and are derived. 'EPROTO' is my gloss of err -71 (Linux errno 71); the sources themselves only call it a USB 3 signalling error (Hans de Goede) and do not name the errno.
Log line or eventWhere it appearedTime or interval (s)What the source says it indicatesSource
data cmplt err -71 uas-tag 1 inflight: CMD, then Read(10)2015 ASM1153E case, stress with ddfirst error at 7505.098Hans de Goede: indicates a USB 3 signalling error; suggests trying a better, short cablelinux-usb ASM1153E thread, 2015
uas_eh_abort_handler 0 uas-tag 2 inflight: CMD IN2015 ASM1153E case7535.253, i.e. 30.2 after the first error (derived)Command timed out; the driver gives up on the taglinux-usb ASM1153E thread, 2015
uas_eh_bus_reset_handler start, then reset SuperSpeed USB device number 2 using xhci_hcd2015 ASM1153E case7535.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) commandslinux-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 start2024 LaCie Rugged FW USB3 postingabort 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-23not timed in the report textReporter: disabling UAS makes the device work; one commenter blames autosuspendLaunchpad bug 1584557

What happened after the bridge was switched to plain usb-storage

Reported outcomes after adding usb-storage.quirks=VID:PID:u. Rates are megabytes per second (MB/s) as quoted by the poster; reset count is the number of 'reset SuperSpeed USB device' lines the poster says were logged.
CaseDisk behind the bridgeResult with UAS offWhat stayed wrongSource
LC-Power enclosure, ASMedia 174c:55aa, 2015Seagate Barracuda 7200.11, 1.5 TB (1.36 TiB)Whole disk read with dd at about 125 MB/s with no failure953 USB resets still logged (poster's count); Hans de Goede: still an issuelinux-usb ASM1153E thread, 2015
Seagate 0bc2:2322, Ubuntu (xenial), 2016Not named in the opened textReporter: works fineAnother commenter: resets still happen and I/O is interruptedLaunchpad bug 1584557
LaCie Rugged FW USB3, 2024500 GB (466 GiB) per the logPatch text: falling back to mass storage resolves this issueNot reported in the postinglinux-usb patch, 2024
Apricorn USB3 dongle, firmware 1.28Not statedEntry sets IGNORE_UASCode comment: sometimes returns USBSUSBSUSBS in response to SCSI commands in UAS modeunusual_uas.h (Linux)

What SMART tooling needs from the bridge

Statements from the smartctl(8) manual source (master, opened 2026-10-11). Counts are device types (count).
Manual statementBridge or device type namedCount (types)Consequence statedSource
Bridge-specific pass-through device typesusbasm1352r, usbcypress, usbjmicron, usbprolific, usbsunplus, sntasmedia, sntjmicron, sntrealtek8Each 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 optionJMicron USB to PATA/SATA bridge1CAUTION: 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 PORTsmartctl(8) manual
usbcypress with a non-default SCSI opcodeCypress USB to PATA bridge1Manual: you run the risk of damage to the device or filesystems on itsmartctl(8) manual
SMART health status via SMART RETURN STATUSAny ATA disk behind a bridge or RAID layer1The 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 thresholdsmartctl(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

  1. 01Linux kernel: drivers/usb/storage/unusual_uas.h (master) · accessed 2026-10-11
  2. 02Linux kernel: drivers/usb/storage/unusual_devs.h (master) · accessed 2026-10-11
  3. 03Linux kernel: drivers/usb/storage/uas.c (master) · accessed 2026-10-11
  4. 04The Linux kernel documentation: The kernel's command-line parameters, usb-storage.quirks · accessed 2026-10-11
  5. 05smartmontools: smartctl.8.in (master), device types and health status · accessed 2026-10-11
  6. 06[PATCH] usb-storage: Ignore UAS for LaCie Rugged FW USB3, linux-usb, 9 February 2024 · accessed 2026-10-11
  7. 07Re: [Workaround] ASM1153E : ASM 174c:55aa problems re-loaded [quirk needed], linux-usb, 16 November 2015 · accessed 2026-10-11
  8. 08Ubuntu Launchpad bug 1584557: Seagate external drive causes SCSI bus resets when UAS enabled · accessed 2026-10-11