[PATCH] ata: Disable NCQ for Crucial M225 brand SSDs

From: Vishal Rao
Date: Tue Jan 26 2010 - 10:04:40 EST


Disable NCQ usage for Crucial M225 model range of SSDs.

Signed-off-by: Vishal Rao <vishalrao@xxxxxxxxx>
Tested-by: Vishal Rao <vishalrao@xxxxxxxxx>
Cc: stable@xxxxxxxxxx

---

Should work with 64, 128 (tested) and 256 GB capacities with any
firmware versions in
drivers/ata/libata-core.c because of ATA errors in dmesg, hangs and
filesystem corruption.

The diff is against linux kernel 2.6.33 rc5 though also meant for
2.6.32 stable series due to multiple distros' proposed long term support.

I've tested on my PC with my Crucial M225 model 128 GB SSD and it works
without the need to specify kernel boot option " libata.force=noncq ".

--- linux-source-2.6.33rc5/drivers/ata/libata-core.c.orig 2010-01-26
08:35:54.117306573 +0530
+++ linux-source-2.6.33rc5/drivers/ata/libata-core.c 2010-01-26
08:35:13.047306938 +0530
@@ -4274,6 +4274,9 @@ static const struct ata_blacklist_entry
{ "ST380817AS", "3.42", ATA_HORKAGE_NONCQ },
{ "ST3160023AS", "3.42", ATA_HORKAGE_NONCQ },
{ "OCZ CORE_SSD", "02.10104", ATA_HORKAGE_NONCQ },
+ { "CRUCIAL_CT64M225", NULL, ATA_HORKAGE_NONCQ },
+ { "CRUCIAL_CT128M225", NULL, ATA_HORKAGE_NONCQ },
+ { "CRUCIAL_CT256M225", NULL, ATA_HORKAGE_NONCQ },

/* Seagate NCQ + FLUSH CACHE firmware bug */
{ "ST31500341AS", "SD15", ATA_HORKAGE_NONCQ |


--
"Thou shalt not follow the null pointer for at its end madness and chaos lie."
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/