libata: implement ATA_HORKAGE_NO_NCQ_TRIM and apply it to Micro M500 SSDs
authorMarc Carino <marc.ceeeee@gmail.com>
Tue, 17 Dec 2013 02:15:53 +0000 (18:15 -0800)
committerTejun Heo <tj@kernel.org>
Tue, 17 Dec 2013 12:03:14 +0000 (07:03 -0500)
commitf78dea064c5f7de07de4912a6e5136dbc443d614
treea2254dfd1558a40bbe5058f29d2a506c08045ffb
parentb8bd6dc36186fe99afa7b73e9e2d9a98ad5c4865
libata: implement ATA_HORKAGE_NO_NCQ_TRIM and apply it to Micro M500 SSDs

Certain drives cannot handle queued TRIM commands properly, even
though support is indicated in the IDENTIFY DEVICE buffer.  This patch
allows for disabling the commands for the affected drives and apply it
to the Micron/Crucial M500 SSDs which exhibit incorrect protocol
behavior when issued queued TRIM commands, which could lead to silent
data corruption.

tj: Merged two unnecessarily split patches and made minor edits
    including shortening horkage name.

Signed-off-by: Marc Carino <marc.ceeeee@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Link: http://lkml.kernel.org/g/1387246554-7311-1-git-send-email-marc.ceeeee@gmail.com
Cc: stable@vger.kernel.org # 3.12+
drivers/ata/libata-core.c
include/linux/libata.h