This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via c9ab30c5d31979ea7056261c9867cf42644b4a0d (commit) from 388f903e9e83a7013824fd858dbda23ba55bb9f8 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit c9ab30c5d31979ea7056261c9867cf42644b4a0d Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Jul 13 22:00:57 2015 +0200
kernel: fix trim dataloss on some solid state discs
disable trim on SuperSSpeed S238 update queued trim blacklist from kernel 4.2rc1 (add Samsung SSD 8xx and some Crucial and Micron SSD)
-----------------------------------------------------------------------
Summary of changes: lfs/linux | 7 +++- src/patches/linux-3.14.43_SuperSSpeed_NOTRIM.patch | 47 ++++++++++++++++++++++ .../linux-3.14.43_new_qtrim_blacklist.patch | 18 +++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 src/patches/linux-3.14.43_SuperSSpeed_NOTRIM.patch create mode 100644 src/patches/linux-3.14.43_new_qtrim_blacklist.patch
Difference in files: diff --git a/lfs/linux b/lfs/linux index f59a709..33bdf8f 100644 --- a/lfs/linux +++ b/lfs/linux @@ -37,7 +37,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) CFLAGS = CXXFLAGS =
-PAK_VER = 61 +PAK_VER = 62 DEPS = ""
VERSUFIX=ipfire$(KCFG) @@ -161,6 +161,11 @@ endif # r8169 L23 patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.32-r8169_disable_L23.patch
+ # SuperSSpeed S238 NOTRIM patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.43_SuperSSpeed_NOTRIM.patch + # update the queued trim blacklist from kernel 4.2rc1 + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.43_new_qtrim_blacklist.patch + # HyperV 2008 patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.x-hyperv-2008-fix.patch
diff --git a/src/patches/linux-3.14.43_SuperSSpeed_NOTRIM.patch b/src/patches/linux-3.14.43_SuperSSpeed_NOTRIM.patch new file mode 100644 index 0000000..1745bbc --- /dev/null +++ b/src/patches/linux-3.14.43_SuperSSpeed_NOTRIM.patch @@ -0,0 +1,47 @@ +diff -Naur linux-3.14.43.org/drivers/ata/libata-core.c linux-3.14.43/drivers/ata/libata-core.c +--- linux-3.14.43.org/drivers/ata/libata-core.c 2015-05-17 18:54:01.000000000 +0200 ++++ linux-3.14.43/drivers/ata/libata-core.c 2015-07-11 19:15:01.450041507 +0200 +@@ -4229,6 +4229,9 @@ + { "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 +diff -Naur linux-3.14.43.org/drivers/ata/libata-scsi.c linux-3.14.43/drivers/ata/libata-scsi.c +--- linux-3.14.43.org/drivers/ata/libata-scsi.c 2015-05-17 18:54:01.000000000 +0200 ++++ linux-3.14.43/drivers/ata/libata-scsi.c 2015-07-11 20:47:22.570021716 +0200 +@@ -2510,11 +2513,15 @@ + rbuf[14] = (lowest_aligned >> 8) & 0x3f; + rbuf[15] = lowest_aligned; + +- if (ata_id_has_trim(args->id)) { +- rbuf[14] |= 0x80; /* TPE */ + +- if (ata_id_has_zero_after_trim(args->id)) +- rbuf[14] |= 0x40; /* TPRZ */ ++ ++ if (!(dev->horkage & ATA_HORKAGE_NOTRIM)) { ++ if (ata_id_has_trim(args->id)) { ++ rbuf[14] |= 0x80; /* TPE */ ++ ++ if (ata_id_has_zero_after_trim(args->id)) ++ rbuf[14] |= 0x40; /* TPRZ */ ++ } + } + } + +diff -Naur linux-3.14.43.org/include/linux/libata.h linux-3.14.43/include/linux/libata.h +--- linux-3.14.43.org/include/linux/libata.h 2015-05-17 18:54:01.000000000 +0200 ++++ linux-3.14.43/include/linux/libata.h 2015-07-11 19:13:03.190682173 +0200 +@@ -421,6 +421,7 @@ + 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 << 22), /* don't use TRIM */ + + /* DMA mask for user DMA control: User visible values; DO NOT + renumber */ diff --git a/src/patches/linux-3.14.43_new_qtrim_blacklist.patch b/src/patches/linux-3.14.43_new_qtrim_blacklist.patch new file mode 100644 index 0000000..f497070 --- /dev/null +++ b/src/patches/linux-3.14.43_new_qtrim_blacklist.patch @@ -0,0 +1,18 @@ +diff -Naur linux-3.14.43.org/drivers/ata/libata-core.c linux-3.14.43/drivers/ata/libata-core.c +--- linux-3.14.43.org/drivers/ata/libata-core.c 2015-07-13 17:58:28.126607225 +0200 ++++ linux-3.14.43/drivers/ata/libata-core.c 2015-07-13 18:06:07.430782102 +0200 +@@ -4225,9 +4225,11 @@ + + /* devices that don't properly handle queued TRIM commands */ + { "Micron_M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, +- { "Crucial_CT???M500SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, +- { "Micron_M550*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, +- { "Crucial_CT*M550SSD*", 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, }, ++ { "Crucial_CT*M550*", "MU01", ATA_HORKAGE_NO_NCQ_TRIM, }, ++ { "Crucial_CT*MX100*", "MU01", ATA_HORKAGE_NO_NCQ_TRIM, }, ++ { "Samsung SSD 8*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, + + /* devices that don't properly handle TRIM commands */ + { "SuperSSpeed S238*", NULL, ATA_HORKAGE_NOTRIM, },
hooks/post-receive -- IPFire 2.x development tree