| From: Sudip Mukherjee <sudipm.mukherjee@gmail.com> |
| Date: Sat, 19 May 2018 22:29:36 +0100 |
| Subject: libata: blacklist Micron 500IT SSD with MU01 firmware |
| |
| commit 136d769e0b3475d71350aa3648a116a6ee7a8f6c upstream. |
| |
| While whitelisting Micron M500DC drives, the tweaked blacklist entry |
| enabled queued TRIM from M500IT variants also. But these do not support |
| queued TRIM. And while using those SSDs with the latest kernel we have |
| seen errors and even the partition table getting corrupted. |
| |
| Some part from the dmesg: |
| [ 6.727384] ata1.00: ATA-9: Micron_M500IT_MTFDDAK060MBD, MU01, max UDMA/133 |
| [ 6.727390] ata1.00: 117231408 sectors, multi 16: LBA48 NCQ (depth 31/32), AA |
| [ 6.741026] ata1.00: supports DRM functions and may not be fully accessible |
| [ 6.759887] ata1.00: configured for UDMA/133 |
| [ 6.762256] scsi 0:0:0:0: Direct-Access ATA Micron_M500IT_MT MU01 PQ: 0 ANSI: 5 |
| |
| and then for the error: |
| [ 120.860334] ata1.00: exception Emask 0x1 SAct 0x7ffc0007 SErr 0x0 action 0x6 frozen |
| [ 120.860338] ata1.00: irq_stat 0x40000008 |
| [ 120.860342] ata1.00: failed command: SEND FPDMA QUEUED |
| [ 120.860351] ata1.00: cmd 64/01:00:00:00:00/00:00:00:00:00/a0 tag 0 ncq dma 512 out |
| res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x5 (timeout) |
| [ 120.860353] ata1.00: status: { DRDY } |
| [ 120.860543] ata1: hard resetting link |
| [ 121.166128] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) |
| [ 121.166376] ata1.00: supports DRM functions and may not be fully accessible |
| [ 121.186238] ata1.00: supports DRM functions and may not be fully accessible |
| [ 121.204445] ata1.00: configured for UDMA/133 |
| [ 121.204454] ata1.00: device reported invalid CHS sector 0 |
| [ 121.204541] sd 0:0:0:0: [sda] tag#18 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x08 |
| [ 121.204546] sd 0:0:0:0: [sda] tag#18 Sense Key : 0x5 [current] |
| [ 121.204550] sd 0:0:0:0: [sda] tag#18 ASC=0x21 ASCQ=0x4 |
| [ 121.204555] sd 0:0:0:0: [sda] tag#18 CDB: opcode=0x93 93 08 00 00 00 00 00 04 28 80 00 00 00 30 00 00 |
| [ 121.204559] print_req_error: I/O error, dev sda, sector 272512 |
| |
| After few reboots with these errors, and the SSD is corrupted. |
| After blacklisting it, the errors are not seen and the SSD does not get |
| corrupted any more. |
| |
| Fixes: 243918be6393 ("libata: Do not blacklist Micron M500DC") |
| Cc: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com> |
| Signed-off-by: Tejun Heo <tj@kernel.org> |
| [bwh: Backported to 3.16: Drop ATA_HORKAGE_ZERO_AFTER_TRIM flag] |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/ata/libata-core.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/ata/libata-core.c |
| +++ b/drivers/ata/libata-core.c |
| @@ -4247,6 +4247,7 @@ static const struct ata_blacklist_entry |
| { "SanDisk SD7UB3Q*G1001", NULL, ATA_HORKAGE_NOLPM, }, |
| |
| /* devices that don't properly handle queued TRIM commands */ |
| + { "Micron_M500IT_*", "MU01", ATA_HORKAGE_NO_NCQ_TRIM, }, |
| { "Micron_M500_*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, |
| { "Crucial_CT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, |
| { "Micron_M5[15]0_*", "MU01", ATA_HORKAGE_NO_NCQ_TRIM, }, |