public inbox for linux-ide@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ata: libata-core: Quirk INTEL SSDSC2KG480G8 max_sectors
@ 2026-01-20 10:32 Niklas Cassel
       [not found] ` <kH1HPlwkQ_5AcoiqCiLZ7VgrxVC0bJBfB_Bo_1hlMfUwn6ebZHhEtBTAmkzMPBkp50zHeUqMGGzRKmAWp4XheOQjQNRNPPn5JajTY5TZnRk=@proton.me>
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Niklas Cassel @ 2026-01-20 10:32 UTC (permalink / raw)
  To: Damien Le Moal; +Cc: linux-ide, Wolf, Salvatore Bonaccorso, Niklas Cassel

Commit 9b8b84879d4a ("block: Increase BLK_DEF_MAX_SECTORS_CAP") increased
the default max_sectors_kb from 1280 KiB to 4096 KiB.

INTEL SSDSC2KG480G8 with FW rev XCV10120 times out when sending I/Os of
size 4096 KiB.

Enable ATA_QUIRK_MAX_SEC, with value 8191 (sectors) for this device,
since any I/O with more sectors than that lead to I/O timeouts.

With this, the INTEL SSDSC2KG480G8 is usable again.

Link: https://lore.kernel.org/linux-ide/176839089913.2398366.61500945766820256@eldamar.lan/
Fixes: 9b8b84879d4a ("block: Increase BLK_DEF_MAX_SECTORS_CAP")
Signed-off-by: Niklas Cassel <cassel@kernel.org>
---
Hello Wolf,

please test this patch and see if it works.

The patch is based on the for-next branch of:
git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux.git

 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 e888f2445692..8e41e8a33096 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4082,6 +4082,7 @@ static const struct ata_dev_quirk_value __ata_dev_max_sec_quirks[] = {
 	{ "LITEON CX1-JB*-HP",		NULL,		1024 },
 	{ "LITEON EP1-*",		NULL,		1024 },
 	{ "DELLBOSS VD",		"MV.R00-0",	8191 },
+	{ "INTEL SSDSC2KG480G8",	"XCV10120",	8191 },
 	{ },
 };
 
@@ -4336,6 +4337,8 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
 
 	{ "Micron*",			NULL,	ATA_QUIRK_ZERO_AFTER_TRIM },
 	{ "Crucial*",			NULL,	ATA_QUIRK_ZERO_AFTER_TRIM },
+	{ "INTEL SSDSC2KG480G8", "XCV10120",	ATA_QUIRK_ZERO_AFTER_TRIM |
+						ATA_QUIRK_MAX_SEC },
 	{ "INTEL*SSD*",			NULL,	ATA_QUIRK_ZERO_AFTER_TRIM },
 	{ "SSD*INTEL*",			NULL,	ATA_QUIRK_ZERO_AFTER_TRIM },
 	{ "Samsung*SSD*",		NULL,	ATA_QUIRK_ZERO_AFTER_TRIM },
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] ata: libata-core: Quirk INTEL SSDSC2KG480G8 max_sectors
       [not found] ` <kH1HPlwkQ_5AcoiqCiLZ7VgrxVC0bJBfB_Bo_1hlMfUwn6ebZHhEtBTAmkzMPBkp50zHeUqMGGzRKmAWp4XheOQjQNRNPPn5JajTY5TZnRk=@proton.me>
@ 2026-01-20 13:49   ` Niklas Cassel
  0 siblings, 0 replies; 4+ messages in thread
From: Niklas Cassel @ 2026-01-20 13:49 UTC (permalink / raw)
  To: Wolf, Damien Le Moal; +Cc: 1120831@bugs.debian.org, linux-ide

Hello Wolf,

On Tue, Jan 20, 2026 at 01:29:27PM +0000, Wolf wrote:
> > Hello Wolf,
> >
> > please test this patch and see if it works.
> >
> > The patch is based on the for-next branch of:
> > git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux.git
> >
> > 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 e888f2445692..8e41e8a33096 100644
> > --- a/drivers/ata/libata-core.c
> > +++ b/drivers/ata/libata-core.c
> > @@ -4082,6 +4082,7 @@ static const struct ata_dev_quirk_value __ata_dev_max_sec_quirks[] = {
> > { "LITEON CX1-JB*-HP", NULL, 1024 },
> > { "LITEON EP1-", NULL, 1024 },
> > { "DELLBOSS VD", "MV.R00-0", 8191 },
> > + { "INTEL SSDSC2KG480G8", "XCV10120", 8191 },
> > { },
> > };
> >
> > @@ -4336,6 +4337,8 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
> >
> > { "Micron", NULL, ATA_QUIRK_ZERO_AFTER_TRIM },
> > { "Crucial*", NULL, ATA_QUIRK_ZERO_AFTER_TRIM },
> > + { "INTEL SSDSC2KG480G8", "XCV10120", ATA_QUIRK_ZERO_AFTER_TRIM |
> > + ATA_QUIRK_MAX_SEC },
> > { "INTELSSD", NULL, ATA_QUIRK_ZERO_AFTER_TRIM },
> > { "SSDINTEL", NULL, ATA_QUIRK_ZERO_AFTER_TRIM },
> > { "SamsungSSD", NULL, ATA_QUIRK_ZERO_AFTER_TRIM },
> > --
> > 2.52.0
> 
> Hello Niklas,
> 
> The patched linux/6.19.0~rc1 is working.

Thank you for testing!

Hopefully Damien can queue it up.

I suggest queueing it up for for-next,
since it depends on some patches there.


Kind regards,
Niklas

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] ata: libata-core: Quirk INTEL SSDSC2KG480G8 max_sectors
  2026-01-20 10:32 [PATCH] ata: libata-core: Quirk INTEL SSDSC2KG480G8 max_sectors Niklas Cassel
       [not found] ` <kH1HPlwkQ_5AcoiqCiLZ7VgrxVC0bJBfB_Bo_1hlMfUwn6ebZHhEtBTAmkzMPBkp50zHeUqMGGzRKmAWp4XheOQjQNRNPPn5JajTY5TZnRk=@proton.me>
@ 2026-01-22 15:09 ` Martin K. Petersen
  2026-01-26  6:43 ` Damien Le Moal
  2 siblings, 0 replies; 4+ messages in thread
From: Martin K. Petersen @ 2026-01-22 15:09 UTC (permalink / raw)
  To: Niklas Cassel; +Cc: Damien Le Moal, linux-ide, Wolf, Salvatore Bonaccorso


Niklas,

> Commit 9b8b84879d4a ("block: Increase BLK_DEF_MAX_SECTORS_CAP") increased
> the default max_sectors_kb from 1280 KiB to 4096 KiB.
>
> INTEL SSDSC2KG480G8 with FW rev XCV10120 times out when sending I/Os of
> size 4096 KiB.
>
> Enable ATA_QUIRK_MAX_SEC, with value 8191 (sectors) for this device,
> since any I/O with more sectors than that lead to I/O timeouts.

Looks good.

Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>

-- 
Martin K. Petersen

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] ata: libata-core: Quirk INTEL SSDSC2KG480G8 max_sectors
  2026-01-20 10:32 [PATCH] ata: libata-core: Quirk INTEL SSDSC2KG480G8 max_sectors Niklas Cassel
       [not found] ` <kH1HPlwkQ_5AcoiqCiLZ7VgrxVC0bJBfB_Bo_1hlMfUwn6ebZHhEtBTAmkzMPBkp50zHeUqMGGzRKmAWp4XheOQjQNRNPPn5JajTY5TZnRk=@proton.me>
  2026-01-22 15:09 ` Martin K. Petersen
@ 2026-01-26  6:43 ` Damien Le Moal
  2 siblings, 0 replies; 4+ messages in thread
From: Damien Le Moal @ 2026-01-26  6:43 UTC (permalink / raw)
  To: Niklas Cassel; +Cc: linux-ide, Wolf, Salvatore Bonaccorso

On 1/20/26 7:32 PM, Niklas Cassel wrote:
> Commit 9b8b84879d4a ("block: Increase BLK_DEF_MAX_SECTORS_CAP") increased
> the default max_sectors_kb from 1280 KiB to 4096 KiB.
> 
> INTEL SSDSC2KG480G8 with FW rev XCV10120 times out when sending I/Os of
> size 4096 KiB.
> 
> Enable ATA_QUIRK_MAX_SEC, with value 8191 (sectors) for this device,
> since any I/O with more sectors than that lead to I/O timeouts.
> 
> With this, the INTEL SSDSC2KG480G8 is usable again.
> 
> Link: https://lore.kernel.org/linux-ide/176839089913.2398366.61500945766820256@eldamar.lan/
> Fixes: 9b8b84879d4a ("block: Increase BLK_DEF_MAX_SECTORS_CAP")
> Signed-off-by: Niklas Cassel <cassel@kernel.org>

Applied to for-6.20. Thanks !

-- 
Damien Le Moal
Western Digital Research

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-01-26  6:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-20 10:32 [PATCH] ata: libata-core: Quirk INTEL SSDSC2KG480G8 max_sectors Niklas Cassel
     [not found] ` <kH1HPlwkQ_5AcoiqCiLZ7VgrxVC0bJBfB_Bo_1hlMfUwn6ebZHhEtBTAmkzMPBkp50zHeUqMGGzRKmAWp4XheOQjQNRNPPn5JajTY5TZnRk=@proton.me>
2026-01-20 13:49   ` Niklas Cassel
2026-01-22 15:09 ` Martin K. Petersen
2026-01-26  6:43 ` Damien Le Moal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox