]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 31 Jul 2015 00:02:58 +0000 (17:02 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 31 Jul 2015 00:02:58 +0000 (17:02 -0700)
added patches:
libata-add-ata_horkage_notrim.patch
libata-force-disable-trim-for-supersspeed-s238.patch

queue-3.14/libata-add-ata_horkage_notrim.patch [new file with mode: 0644]
queue-3.14/libata-force-disable-trim-for-supersspeed-s238.patch [new file with mode: 0644]
queue-3.14/series

diff --git a/queue-3.14/libata-add-ata_horkage_notrim.patch b/queue-3.14/libata-add-ata_horkage_notrim.patch
new file mode 100644 (file)
index 0000000..83c38e8
--- /dev/null
@@ -0,0 +1,46 @@
+From 71d126fd28de2d4d9b7b2088dbccd7ca62fad6e0 Mon Sep 17 00:00:00 2001
+From: Arne Fitzenreiter <arne_f@ipfire.org>
+Date: Wed, 15 Jul 2015 13:54:36 +0200
+Subject: libata: add ATA_HORKAGE_NOTRIM
+
+From: Arne Fitzenreiter <arne_f@ipfire.org>
+
+commit 71d126fd28de2d4d9b7b2088dbccd7ca62fad6e0 upstream.
+
+Some devices lose data on TRIM whether queued or not.  This patch adds
+a horkage to disable TRIM.
+
+tj: Collapsed unnecessary if() nesting.
+
+Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+
+---
+ drivers/ata/libata-scsi.c |    3 ++-
+ include/linux/libata.h    |    1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/ata/libata-scsi.c
++++ b/drivers/ata/libata-scsi.c
+@@ -2510,7 +2510,8 @@ static unsigned int ata_scsiop_read_cap(
+               rbuf[14] = (lowest_aligned >> 8) & 0x3f;
+               rbuf[15] = lowest_aligned;
+-              if (ata_id_has_trim(args->id)) {
++              if (ata_id_has_trim(args->id) &&
++                  !(dev->horkage & ATA_HORKAGE_NOTRIM)) {
+                       rbuf[14] |= 0x80; /* TPE */
+                       if (ata_id_has_zero_after_trim(args->id))
+--- a/include/linux/libata.h
++++ b/include/linux/libata.h
+@@ -428,6 +428,7 @@ enum {
+       ATA_HORKAGE_NO_NCQ_TRIM = (1 << 19),    /* don't use queued TRIM */
+       ATA_HORKAGE_NOLPM       = (1 << 20),    /* don't use LPM */
+       ATA_HORKAGE_WD_BROKEN_LPM = (1 << 21),  /* some WDs have broken LPM */
++      ATA_HORKAGE_NOTRIM = (1 << 24),         /* don't use TRIM */
+        /* DMA mask for user DMA control: User visible values; DO NOT
+           renumber */
diff --git a/queue-3.14/libata-force-disable-trim-for-supersspeed-s238.patch b/queue-3.14/libata-force-disable-trim-for-supersspeed-s238.patch
new file mode 100644 (file)
index 0000000..f8e85fe
--- /dev/null
@@ -0,0 +1,33 @@
+From cda57b1b05cf7b8b99ab4b732bea0b05b6c015cc Mon Sep 17 00:00:00 2001
+From: Arne Fitzenreiter <arne_f@ipfire.org>
+Date: Wed, 15 Jul 2015 13:54:37 +0200
+Subject: libata: force disable trim for SuperSSpeed S238
+
+From: Arne Fitzenreiter <arne_f@ipfire.org>
+
+commit cda57b1b05cf7b8b99ab4b732bea0b05b6c015cc upstream.
+
+This device loses blocks, often the partition table area, on trim.
+Disable TRIM.
+http://pcengines.ch/msata16a.htm
+
+Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/libata-core.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/ata/libata-core.c
++++ b/drivers/ata/libata-core.c
+@@ -4230,6 +4230,9 @@ static const struct ata_blacklist_entry
+       { "Micron_M550*",               NULL,   ATA_HORKAGE_NO_NCQ_TRIM, },
+       { "Crucial_CT*M550SSD*",        NULL,   ATA_HORKAGE_NO_NCQ_TRIM, },
++      /* devices that don't properly handle TRIM commands */
++      { "SuperSSpeed S238*",          NULL,   ATA_HORKAGE_NOTRIM, },
++
+       /*
+        * Some WD SATA-I drives spin up and down erratically when the link
+        * is put into the slumber mode.  We don't have full list of the
index b7a914d231cb82643e1f1c23e0c9721ed81ea19a..427cf3889bad9ad93a05a86ba1b9f1b29849137d 100644 (file)
@@ -82,3 +82,5 @@ vtpm-set-virtual-device-before-passing-to-ibmvtpm_reset_crq.patch
 keys-ensure-we-free-the-assoc-array-edit-if-edit-is-valid.patch
 ima-fix-ima_show_template_data_ascii.patch
 evm-labeling-pseudo-filesystems-exception.patch
+libata-add-ata_horkage_notrim.patch
+libata-force-disable-trim-for-supersspeed-s238.patch