* [PATCH] libata: Fix wrong HPA horkage
@ 2026-10-13 4:21 Ioannis Barkas
2026-10-13 7:29 ` Niklas Cassel
2026-10-13 19:56 ` Niklas Cassel
0 siblings, 2 replies; 4+ messages in thread
From: Ioannis Barkas @ 2026-10-13 4:21 UTC (permalink / raw)
To: linux-ide; +Cc: Ioannis Barkas
Code wrongly filters disks by their serial numbers
Fixes: 16c55b038033 (\libata: implement BROKEN_HPA horkage and apply it to affected drives")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=8888
Signed-off-by: Ioannis Barkas jnyb.de@gmail.com
Signed-off-by: Nick Barkas nickbgrk@gmail.com
---
drivers/ata/libata-core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 59e87b987d..b23e1c3e4c 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4248,8 +4248,8 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
/* devices which puke on READ_NATIVE_MAX */
{ "HDS724040KLSA80", "KFAOA20N", ATA_QUIRK_BROKEN_HPA },
- { "WDC WD3200JD-00KLB0", "WD-WCAMR1130137", ATA_QUIRK_BROKEN_HPA },
- { "WDC WD2500JD-00HBB0", "WD-WMAL71490727", ATA_QUIRK_BROKEN_HPA },
+ { "WDC WD3200JD-00KLB0", "08.05J08", ATA_QUIRK_BROKEN_HPA },
+ { "WDC WD2500JD-00HBB0", "08.02D08", ATA_QUIRK_BROKEN_HPA },
{ "MAXTOR 6L080L4", "A93.0500", ATA_QUIRK_BROKEN_HPA },
/* this one allows HPA unlocking but fails IOs on the area */
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] libata: Fix wrong HPA horkage
2026-10-13 4:21 [PATCH] libata: Fix wrong HPA horkage Ioannis Barkas
@ 2026-10-13 7:29 ` Niklas Cassel
2026-10-13 9:25 ` Damien Le Moal
2026-10-13 19:56 ` Niklas Cassel
1 sibling, 1 reply; 4+ messages in thread
From: Niklas Cassel @ 2026-10-13 7:29 UTC (permalink / raw)
To: Ioannis Barkas; +Cc: linux-ide, dlemoal
On Tue, Oct 13, 2026 at 07:21:46AM +0300, Ioannis Barkas wrote:
> Code wrongly filters disks by their serial numbers
>
> Fixes: 16c55b038033 (\libata: implement BROKEN_HPA horkage and apply it to affected drives")
This should have been V2, as you have already send a patch for this.
Like we commented on your V1:
https://lore.kernel.org/linux-ide/40630ece-de85-48a5-8683-93be32e5d644@kernel.org/
The Fixes tag is corrupted, there should be no backslash.
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=8888
> Signed-off-by: Ioannis Barkas jnyb.de@gmail.com
> Signed-off-by: Nick Barkas nickbgrk@gmail.com
> ---
> drivers/ata/libata-core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index 59e87b987d..b23e1c3e4c 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -4248,8 +4248,8 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
>
> /* devices which puke on READ_NATIVE_MAX */
> { "HDS724040KLSA80", "KFAOA20N", ATA_QUIRK_BROKEN_HPA },
> - { "WDC WD3200JD-00KLB0", "WD-WCAMR1130137", ATA_QUIRK_BROKEN_HPA },
> - { "WDC WD2500JD-00HBB0", "WD-WMAL71490727", ATA_QUIRK_BROKEN_HPA },
> + { "WDC WD3200JD-00KLB0", "08.05J08", ATA_QUIRK_BROKEN_HPA },
> + { "WDC WD2500JD-00HBB0", "08.02D08", ATA_QUIRK_BROKEN_HPA },
You need to explain why the previous FW revision in not correct.
I think the simplest thing here is to simply omit the FW version field,
i.e. change it to NULL.
However, as pointed out by Sashiko on V1:
https://lore.kernel.org/linux-ide/20260913140806.546C91F000FF@smtp.kernel.org/
There is already a wildcarded entry:
{ "WDC WD3200JD-*", NULL, ATA_QUIRK_WD_BROKEN_LPM },
So you should probably drop the "WDC WD3200JD-00KLB0" entry,
and modify the "WDC WD3200JD-*" entry to have quirks:
ATA_QUIRK_BROKEN_HPA | ATA_QUIRK_WD_BROKEN_LPM
Kind regards,
Niklas
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] libata: Fix wrong HPA horkage
2026-10-13 4:21 [PATCH] libata: Fix wrong HPA horkage Ioannis Barkas
2026-10-13 7:29 ` Niklas Cassel
@ 2026-10-13 19:56 ` Niklas Cassel
1 sibling, 0 replies; 4+ messages in thread
From: Niklas Cassel @ 2026-10-13 19:56 UTC (permalink / raw)
To: Ioannis Barkas; +Cc: linux-ide
On Tue, Oct 13, 2026 at 07:21:46AM +0300, Ioannis Barkas wrote:
> Code wrongly filters disks by their serial numbers
I assume you found this using LLM, so a better commit message is something
like:
ata: libata-core: Remove BROKEN_HPA quirks that can never match
The ATA_QUIRK_BROKEN_HPA entries for "WDC WD3200JD-00KLB0" and
"WDC WD2500JD-00HBB0" use "WD-WCAMR1130137" and "WD-WMAL71490727" as
model_rev. These look like drive serial numbers. model_rev is matched
against the firmware revision, which is at most ATA_ID_FW_REV_LEN (8)
characters long, so these 15 character patterns without wildcards can
never match. This has been the case since the entries were added in
commit 16c55b038033 ("libata: implement BROKEN_HPA horkage and apply it
to affected drives"), which compared the strings using strcmp().
The firmware revisions of the affected drives are not known. Matching
on the model only would apply ATA_QUIRK_BROKEN_HPA to drives that have
never had it, and these entries would then take precedence over the
"WDC WD3200JD-*" and "WDC WD2500JD-*" entries that match the same
drives. Remove the two entries instead.
No functional change.
Assisted-by: LLM
i.e. I would simply let the patch drop these two entries, such that the
existing wildcard entries are the only ones used.
>
> Fixes: 16c55b038033 (\libata: implement BROKEN_HPA horkage and apply it to affected drives")
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=8888
> Signed-off-by: Ioannis Barkas jnyb.de@gmail.com
> Signed-off-by: Nick Barkas nickbgrk@gmail.com
> ---
> drivers/ata/libata-core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index 59e87b987d..b23e1c3e4c 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -4248,8 +4248,8 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
>
> /* devices which puke on READ_NATIVE_MAX */
> { "HDS724040KLSA80", "KFAOA20N", ATA_QUIRK_BROKEN_HPA },
> - { "WDC WD3200JD-00KLB0", "WD-WCAMR1130137", ATA_QUIRK_BROKEN_HPA },
> - { "WDC WD2500JD-00HBB0", "WD-WMAL71490727", ATA_QUIRK_BROKEN_HPA },
> + { "WDC WD3200JD-00KLB0", "08.05J08", ATA_QUIRK_BROKEN_HPA },
> + { "WDC WD2500JD-00HBB0", "08.02D08", ATA_QUIRK_BROKEN_HPA },
> { "MAXTOR 6L080L4", "A93.0500", ATA_QUIRK_BROKEN_HPA },
>
> /* this one allows HPA unlocking but fails IOs on the area */
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-10-13 19:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-13 4:21 [PATCH] libata: Fix wrong HPA horkage Ioannis Barkas
2026-10-13 7:29 ` Niklas Cassel
2026-10-13 9:25 ` Damien Le Moal
2026-10-13 19:56 ` Niklas Cassel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox