android_kernel_oneplus_msm8998/drivers/ata
Sudip Mukherjee 03d08c0804 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: 243918be63 ("libata: Do not blacklist Micron M500DC")
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: stable@vger.kernel.org
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-05-30 07:48:51 +02:00
..
acard-ahci.c ahci: Store irq number in struct ahci_host_priv 2015-06-03 01:37:49 -04:00
ahci.c ahci: Add PCI-id for the Highpoint Rocketraid 644L card 2018-03-28 18:40:13 +02:00
ahci.h ata: ahci: find eSATA ports and flag them as removable 2015-09-30 17:37:55 -04:00
ahci_brcmstb.c ata: ahci_brcmstb: Fix misuse of IS_ENABLED 2015-08-06 14:30:07 -04:00
ahci_ceva.c drivers: ata: add support for Ceva sata host controller 2015-06-10 11:15:17 +09:00
ahci_da850.c ata: ahci_platform: fix owner module reference mismatch for scsi host 2015-01-28 18:45:23 -05:00
ahci_imx.c ata: ahci_platform: fix owner module reference mismatch for scsi host 2015-01-28 18:45:23 -05:00
ahci_mvebu.c sata/mvebu: use #ifdef around suspend/resume code 2015-11-20 14:59:43 -05:00
ahci_platform.c ata: ahci-platform: Add ports-implemented DT bindings. 2016-05-11 11:21:21 +02:00
ahci_qoriq.c ahci: qoriq: Disable NCQ on ls2080a SoC 2015-10-31 09:52:15 +09:00
ahci_st.c ata: ahci_st: fixup layering violations / drvdata errors 2015-04-20 13:36:38 -04:00
ahci_sunxi.c ata: ahci_platform: fix owner module reference mismatch for scsi host 2015-01-28 18:45:23 -05:00
ahci_tegra.c ata: ahci_platform: fix owner module reference mismatch for scsi host 2015-01-28 18:45:23 -05:00
ahci_xgene.c ata: ahci_xgene: dereferencing uninitialized pointer in probe 2016-05-11 11:21:10 +02:00
ata_generic.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
ata_piix.c ata_piix: Add Device IDs for Intel 9 Series PCH 2014-08-28 08:53:40 -04:00
Kconfig ata: SATA_MV should depend on HAS_DMA 2017-11-21 09:21:19 +01:00
libahci.c libahci: save port map for forced port map 2016-05-11 11:21:20 +02:00
libahci_platform.c ata: libahci: properly propagate return value of platform_get_irq() 2018-04-13 19:50:06 +02:00
libata-acpi.c ACPI and power management updates for 3.15-rc1 2014-04-01 12:48:54 -07:00
libata-core.c libata: blacklist Micron 500IT SSD with MU01 firmware 2018-05-30 07:48:51 +02:00
libata-eh.c ata: fixes kernel crash while tracing ata_eh_link_autopsy event 2017-11-30 08:37:21 +00:00
libata-pmp.c ata: pmp: add quirk for Marvell 4140 SATA PMP 2015-07-14 17:46:38 -04:00
libata-scsi.c libata: fix length validation of ATAPI-relayed SCSI commands 2018-03-28 18:40:13 +02:00
libata-sff.c libata: drop WARN from protocol error in ata_sff_qc_issue() 2017-12-16 10:33:52 +01:00
libata-trace.c libata: Add tracepoints 2015-03-27 11:59:22 -04:00
libata-transport.c libata: transport: Remove circular dependency at free time 2017-10-08 10:14:20 +02:00
libata-transport.h [libata] Add ATA transport class 2010-10-21 20:21:03 -04:00
libata-zpodd.c libata: zpodd: eliminate odd_can_poweroff 2014-03-14 11:23:47 -04:00
libata.h Revert "libata: Implement NCQ autosense" 2015-08-03 12:01:54 -04:00
Makefile ahci: added a new driver for supporting Freescale AHCI sata 2015-09-08 12:30:06 -04:00
pata_acpi.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_ali.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_amd.c cs5536: add support for IDE controller variant 2017-09-13 14:09:45 -07:00
pata_arasan_cf.c Merge branch 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2015-09-02 08:00:54 -07:00
pata_artop.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_at32.c ata: drop owner assignment from platform_drivers 2014-10-20 16:20:17 +02:00
pata_at91.c ata: at91: use syscon to configure the smc 2015-05-20 16:36:50 +02:00
pata_atiixp.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_atp867x.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
pata_bf54x.c ata: drop owner assignment from platform_drivers 2014-10-20 16:20:17 +02:00
pata_cmd64x.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_cmd640.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_cs5520.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
pata_cs5530.c ata: Delete unnecessary checks before the function call "pci_dev_put" 2015-02-03 07:04:44 -05:00
pata_cs5535.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_cs5536.c cs5536: add support for IDE controller variant 2017-09-13 14:09:45 -07:00
pata_cypress.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_efar.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_ep93xx.c ata: drop owner assignment from platform_drivers 2014-10-20 16:20:17 +02:00
pata_hpt3x2n.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_hpt3x3.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
pata_hpt37x.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_hpt366.c ata: hpt366: fix constant cast warning 2015-05-21 17:37:51 -04:00
pata_icside.c Drivers: ata: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
pata_imx.c ata: drop owner assignment from platform_drivers 2014-10-20 16:20:17 +02:00
pata_isapnp.c PNP: ata/pata_isapnp: Use module_pnp_driver to register driver 2015-03-18 22:39:17 +01:00
pata_it821x.c pata_it821x: use "const char *" for string literals 2015-10-15 10:58:53 -04:00
pata_it8213.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_ixp4xx_cf.c ata: drop owner assignment from platform_drivers 2014-10-20 16:20:17 +02:00
pata_jmicron.c PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI 2015-08-24 15:27:11 -05:00
pata_legacy.c pata_legacy: Remove dead code 2014-03-11 08:30:53 -04:00
pata_macio.c ata: pata_macio: Fix module autoload for OF platform driver 2015-09-17 11:14:25 -04:00
pata_marvell.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_mpc52xx.c ata: drop owner assignment from platform_drivers 2014-10-20 16:20:17 +02:00
pata_mpiix.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_netcell.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_ninja32.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
pata_ns87410.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_ns87415.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_octeon_cf.c pata_octeon_cf: fix broken build 2015-06-08 18:03:04 +09:00
pata_of_platform.c ata: pata_platform: fix owner module reference mismatch for scsi host 2015-01-28 18:45:23 -05:00
pata_oldpiix.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_opti.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_optidma.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_palmld.c ata: drop owner assignment from platform_drivers 2014-10-20 16:20:17 +02:00
pata_pcmcia.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
pata_pdc202xx_old.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_pdc2027x.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
pata_piccolo.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_platform.c ata: pata_platform: fix owner module reference mismatch for scsi host 2015-01-28 18:45:23 -05:00
pata_pxa.c ata: pata_pxa: dmaengine conversion 2015-09-10 17:02:04 -04:00
pata_radisys.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_rb532_cf.c pata-rb532-cf: get rid of the irq_to_gpio() call 2016-03-09 15:34:53 -08:00
pata_rdc.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_rz1000.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_samsung_cf.c libata: samsung_cf: fix handling platform_get_irq result 2015-09-25 11:50:15 -04:00
pata_sc1200.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_sch.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_serverworks.c pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE Controller 2014-10-07 17:10:14 -04:00
pata_sil680.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
pata_sis.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_sl82c105.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_triflex.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pata_via.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
pdc_adma.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
sata_dwc_460ex.c sata_dwc_460ex: indent an if statement 2015-03-30 13:14:40 -04:00
sata_fsl.c ata/sata_fsl.c: add ATA_FLAG_NO_LOG_PAGE to blacklist the controller for log page reads 2015-12-07 10:25:57 -05:00
sata_highbank.c ahci: Store irq number in struct ahci_host_priv 2015-06-03 01:37:49 -04:00
sata_inic162x.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
sata_mv.c ata: sata_mv:- Handle return value of devm_ioremap. 2017-02-09 08:02:45 +01:00
sata_nv.c ata:sata_nv - Change 1 to true for bool type variable. 2015-05-25 20:06:55 -04:00
sata_promise.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
sata_promise.h
sata_qstor.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
sata_rcar.c ata: sata_rcar: Remove obsolete sata-r8a779* platform_device_id entries 2015-07-14 17:38:43 -04:00
sata_sil.c sata_sil: disable trim 2015-11-30 10:02:49 -05:00
sata_sil24.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
sata_sis.c ata: use CONFIG_PM_SLEEP instead of CONFIG_PM where applicable in host drivers 2014-05-09 22:37:49 -04:00
sata_svw.c powerpc updates for 4.1 2015-04-16 13:53:32 -05:00
sata_sx4.c sata_sx4: Check return code from pdc20621_i2c_read() 2015-08-06 12:38:14 -04:00
sata_uli.c ata: delete non-required instances of include <linux/init.h> 2014-02-13 16:40:56 -05:00
sata_via.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
sata_vsc.c ata: remove deprecated use of pci api 2015-04-08 10:55:05 -04:00
sis.h