From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Niklas Cassel <cassel@kernel.org>, Emerson Pinter <e@pinter.dev>,
Damien Le Moal <dlemoal@kernel.org>,
Sasha Levin <sashal@kernel.org>,
linux-ide@vger.kernel.org
Subject: [PATCH AUTOSEL 6.18-6.12] ata: libata-core: Disable LPM on ST2000DM008-2FR102
Date: Tue, 23 Dec 2025 05:05:12 -0500 [thread overview]
Message-ID: <20251223100518.2383364-8-sashal@kernel.org> (raw)
In-Reply-To: <20251223100518.2383364-1-sashal@kernel.org>
From: Niklas Cassel <cassel@kernel.org>
[ Upstream commit ba624ba88d9f5c3e2ace9bb6697dbeb05b2dbc44 ]
According to a user report, the ST2000DM008-2FR102 has problems with LPM.
Reported-by: Emerson Pinter <e@pinter.dev>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220693
Signed-off-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
## Analysis of Commit: Disable LPM on ST2000DM008-2FR102
### 1. COMMIT MESSAGE ANALYSIS
The commit message is clear and provides essential information:
- **Purpose:** Disabling Link Power Management (LPM) for a specific
Seagate hard drive model
- **Evidence of real issue:** Has `Reported-by:` tag and references
kernel bugzilla #220693
- **Proper sign-offs:** Signed by both the patch author (Niklas Cassel)
and the libata maintainer (Damien Le Moal)
### 2. CODE CHANGE ANALYSIS
The change adds exactly 3 lines to the `__ata_dev_quirks[]` array in
`drivers/ata/libata-core.c`:
```c
/* Seagate disks with LPM issues */
{ "ST2000DM008-2FR102", NULL, ATA_QUIRK_NOLPM },
```
This follows the exact same pattern as existing quirks in the table.
Looking at the context, there's already another Seagate drive with
`ATA_QUIRK_NOLPM`:
```c
{ "ST1000LM024 HN-M101MBB", NULL, ATA_QUIRK_BROKEN_FPDMA_AA |
ATA_QUIRK_NOLPM },
```
The mechanism is well-understood: when this specific drive model is
detected, LPM is disabled to avoid the hardware-specific issues it
causes.
### 3. CLASSIFICATION
This is a **hardware quirk/workaround** - one of the explicit exceptions
allowed in stable:
- It's adding a device-specific workaround to an existing quirk table
- Identical pattern to dozens of other quirks already in the table
- Fixes real-world hardware issues even though it "adds code"
### 4. SCOPE AND RISK ASSESSMENT
| Metric | Assessment |
|--------|------------|
| Lines changed | 3 (minimal) |
| Files touched | 1 |
| Complexity | Trivial - data table addition |
| Risk to other users | Zero - only affects this specific drive model |
| Regression potential | None - well-established mechanism |
The risk is essentially zero. This is a data-only change to a static
array. The quirk mechanism has been stable for many years and is used
extensively for similar hardware workarounds.
### 5. USER IMPACT
- **Affected users:** Owners of ST2000DM008-2FR102 (2TB Seagate
Barracuda) - a popular consumer HDD
- **Without the fix:** LPM-related issues typically cause drive
disconnects, I/O errors, or system hangs
- **Severity:** Medium to High - LPM issues can cause data corruption or
loss in severe cases
- **Real bug evidence:** Bugzilla report indicates actual users hitting
this problem
### 6. STABILITY INDICATORS
- Approved by libata maintainer (Damien Le Moal)
- Proper bug tracking with Closes: tag
- Reported-by indicates real user testing/reporting
### 7. DEPENDENCY CHECK
- **Dependencies:** None - standalone quirk addition
- **Code exists in stable:** Yes - the quirk table and `ATA_QUIRK_NOLPM`
exist in all maintained stable kernels
- **Backport complexity:** Trivial - should apply cleanly to any stable
kernel
### FINAL ASSESSMENT
This commit is a textbook example of what SHOULD be backported to
stable:
**Meets all stable criteria:**
1. ✅ Obviously correct - identical pattern to existing quirks
2. ✅ Fixes a real bug - LPM issues reported by users
3. ✅ Small and contained - 3 lines, 1 file
4. ✅ No new features - just a hardware workaround
5. ✅ Falls into "quirks/workarounds" exception category
**Risk vs Benefit:**
- **Risk:** Essentially zero - only affects one specific drive model,
cannot break anything else
- **Benefit:** Fixes LPM-related issues (drive disconnects, errors,
potential data corruption) for users of this popular Seagate drive
This is exactly the type of low-risk, high-value hardware workaround
that stable trees are designed to include.
**YES**
drivers/ata/libata-core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index f48fb63d7e85..1216b4f2eb90 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4132,6 +4132,9 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
{ "ST3320[68]13AS", "SD1[5-9]", ATA_QUIRK_NONCQ |
ATA_QUIRK_FIRMWARE_WARN },
+ /* Seagate disks with LPM issues */
+ { "ST2000DM008-2FR102", NULL, ATA_QUIRK_NOLPM },
+
/* drives which fail FPDMA_AA activation (some may freeze afterwards)
the ST disks also have LPM issues */
{ "ST1000LM024 HN-M101MBB", NULL, ATA_QUIRK_BROKEN_FPDMA_AA |
--
2.51.0
parent reply other threads:[~2025-12-23 10:05 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <20251223100518.2383364-1-sashal@kernel.org>]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251223100518.2383364-8-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=cassel@kernel.org \
--cc=dlemoal@kernel.org \
--cc=e@pinter.dev \
--cc=linux-ide@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox