From patchwork Sun Apr 29 16:01:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudip Mukherjee X-Patchwork-Id: 906377 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ide-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="HukniSqb"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40Ysqb1ZPgz9ryr for ; Mon, 30 Apr 2018 02:01:46 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753605AbeD2QBp (ORCPT ); Sun, 29 Apr 2018 12:01:45 -0400 Received: from mail-wr0-f194.google.com ([209.85.128.194]:46637 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753584AbeD2QBo (ORCPT ); Sun, 29 Apr 2018 12:01:44 -0400 Received: by mail-wr0-f194.google.com with SMTP id o2-v6so3005166wrj.13; Sun, 29 Apr 2018 09:01:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=ADO+APEPxkeDTFuMDXFLDRN4Kp5k5UYUlxYyldz60nQ=; b=HukniSqb+ju9CUsCyPZr/dGUMZV3j1Ann1OvWYwIV7tuE5hmUjUnMr5XPdtQ5LGaJ8 CCTo3ANCWqG0w7LXxbYUVy+mBIvSAV1LlZN3Og3UzFIT6cyWNS8r3q+K/EzfxNllwKTZ NhUccMp+ylyPIE6e9H3BXPxTNkMiM5skqB48h0Mcxdeo93mEj38Lwq5g+nX0fz0flZST W5o1+9P2MM9zgqJxzetuuuQIUaVtVnA0wa7fJwioSRsiewx0fDTqDelJ1Gw+RQKJsR5U rhqOCTZ+0pu2BnSwqU7wyx8Jtc9w1aYWpAzkOZaEfk0GAOcXCl9ysasj1zf5fwfFgGjD uw0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ADO+APEPxkeDTFuMDXFLDRN4Kp5k5UYUlxYyldz60nQ=; b=KpJ26cqknxfhJX3SmL29+VAWzwlxhjSFFuOb3LSsC/RrImajElfBzr2iSrS9wge07v njjK1Uz6w+hLGE1ZN8tTntalLmE2MFnweFz4JRdCqTMqH7ghrZSpeb8+8BPRBO0A+FD/ Yv1gLngMkSBP5+T9IIddxRux9g0vQgctkPBL0Q3ZITDtE5/6J7Lu479YvsYIBVdo9O29 8v0oL+jYbbfg4MEgV6+dQdUyWHcfUsBn7eV6TUHH0PhWzAIVgtmpQdeBNiXIx0s5VQoq QOw0vQwGFDOnLwdJqL4cjAAtptuXBZ5T/e0HUxjutQ9OoeLq1jy4CaUx+SwU4AVR3mrP vu+w== X-Gm-Message-State: ALQs6tC6eYIKb75JFiFAOOTb6K0ifG8T6fUa+plLIpDv+rkV9NjIgEN+ 0m0udbmCx6UyBP0rgMvZZis= X-Google-Smtp-Source: AB8JxZoR6JujgMnxPDZaPpnyO3xUfanT3sN50nHtVPoOu4JRoDqSH/cH6M6sDGPh/nTa8NAleDW5FQ== X-Received: by 2002:adf:b00f:: with SMTP id f15-v6mr7444291wra.254.1525017702299; Sun, 29 Apr 2018 09:01:42 -0700 (PDT) Received: from localhost.localdomain (cpc101300-bagu16-2-0-cust362.1-3.cable.virginm.net. [86.21.41.107]) by smtp.gmail.com with ESMTPSA id h81sm7450171wmd.0.2018.04.29.09.01.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 29 Apr 2018 09:01:41 -0700 (PDT) From: Sudip Mukherjee X-Google-Original-From: Sudip Mukherjee To: Tejun Heo Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, Sudip Mukherjee , stable@vger.kernel.org, "Martin K . Petersen" Subject: [PATCH v2] libata: blacklist Micron SSD Date: Sun, 29 Apr 2018 17:01:38 +0100 Message-Id: <20180429160138.11091-1-sudip.mukherjee@codethink.co.uk> X-Mailer: git-send-email 2.11.0 Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org From: Sudip Mukherjee While whitelisting Micron M500DC drives, the tweaked blacklist entry enabled queued TRIM for 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. We know that M500IT MG02 and M500DC support this feature, Martin asked Micron for a list of SSDs which have support for this feature. But there was no reply. It is best to blacklst all Micron SSDs for now, except the known two variants, to prevent corrupting other Micron SSDs which do not support this. Fixes: 243918be6393 ("libata: Do not blacklist Micron M500DC") Cc: stable@vger.kernel.org Cc: Martin K. Petersen Signed-off-by: Sudip Mukherjee --- v1: Only M500IT MU01 was blacklisted. v2: Whitelist M500IT BG02 and M500DC and then blacklist all other Micron. drivers/ata/libata-core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 8bc71ca61e7f..df5d716c0a07 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -4550,7 +4550,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { ATA_HORKAGE_NOLPM, }, /* devices that don't properly handle queued TRIM commands */ - { "Micron_M500_*", NULL, ATA_HORKAGE_NO_NCQ_TRIM | + { "Micron_M500DC*", NULL, 0}, + { "Micron_M500IT_*", "MG02", 0}, + { "Micron_M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM | ATA_HORKAGE_ZERO_AFTER_TRIM, }, { "Crucial_CT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM | ATA_HORKAGE_ZERO_AFTER_TRIM, },