Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Revert kern/54790 and kern/54855 NCQ fix that penalised all ...
details: https://anonhg.NetBSD.org/src/rev/080177f15736
branches: trunk
changeset: 968495:080177f15736
user: simonb <simonb%NetBSD.org@localhost>
date: Sat Jan 18 11:22:49 2020 +0000
description:
Revert kern/54790 and kern/54855 NCQ fix that penalised all Samsung
EVO 860 drives.
ok jdolecek@
diffstat:
share/man/man4/wd.4 | 18 +-----------------
sys/dev/ata/wd.c | 26 ++++++++++++--------------
2 files changed, 13 insertions(+), 31 deletions(-)
diffs (101 lines):
diff -r e9f82b2180f6 -r 080177f15736 share/man/man4/wd.4
--- a/share/man/man4/wd.4 Sat Jan 18 07:54:26 2020 +0000
+++ b/share/man/man4/wd.4 Sat Jan 18 11:22:49 2020 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: wd.4,v 1.23 2020/01/14 09:30:34 wiz Exp $
+.\" $NetBSD: wd.4,v 1.24 2020/01/18 11:22:49 simonb Exp $
.\"
.\"
.\" Copyright (c) 1994 James A. Jegers
@@ -85,22 +85,6 @@
.El
.Sh NOTES
Certain
-.Tn Samsung
-.Tn 860 EVO
-SSD drives have firmware bug which causes interface CRC errors when NCQ
-ATA commands are used.
-For this reason NCQ is disabled for these drives by default.
-Affected drives include, but are not limited to:
-.Pp
-.Bl -tag -width Ds -offset indent -compact
-.It Samsung SSD 860 EVO 500GB
-.It Samsung SSD 860 EVO 1TB
-.El
-.Pp
-It is recommended to not use the EVO SSD drives, and replace them
-with other models.
-.Pp
-Certain
.Tn Seagate
.Tn Barracuda
drives sold around 2003 have a known firmware bug leading to corrupted
diff -r e9f82b2180f6 -r 080177f15736 sys/dev/ata/wd.c
--- a/sys/dev/ata/wd.c Sat Jan 18 07:54:26 2020 +0000
+++ b/sys/dev/ata/wd.c Sat Jan 18 11:22:49 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: wd.c,v 1.455 2020/01/14 21:08:06 jdolecek Exp $ */
+/* $NetBSD: wd.c,v 1.456 2020/01/18 11:22:49 simonb Exp $ */
/*
* Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved.
@@ -54,7 +54,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.455 2020/01/14 21:08:06 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.456 2020/01/18 11:22:49 simonb Exp $");
#include "opt_ata.h"
#include "opt_wd.h"
@@ -231,9 +231,8 @@
#endif
#define WD_QUIRK_SPLIT_MOD15_WRITE 0x0001 /* must split certain writes */
-#define WD_QUIRK_BAD_NCQ 0x0002 /* drive NCQ support broken */
-#define WD_QUIRK_FMT "\20\1SPLIT_MOD15_WRITE\2BAD_NCQ"
+#define WD_QUIRK_FMT "\20\1SPLIT_MOD15_WRITE\2FORCE_LBA48"
/*
* Quirk table for IDE drives. Put more-specific matches first, since
@@ -260,11 +259,14 @@
* Seagate Barracuda Serial ATA V family.
*
*/
- { "ST3120023AS", WD_QUIRK_SPLIT_MOD15_WRITE },
- { "ST380023AS", WD_QUIRK_SPLIT_MOD15_WRITE },
- { "ST360015AS", WD_QUIRK_SPLIT_MOD15_WRITE },
- { "Samsung SSD 860 EVO *", WD_QUIRK_BAD_NCQ },
- { NULL, 0 }
+ { "ST3120023AS",
+ WD_QUIRK_SPLIT_MOD15_WRITE },
+ { "ST380023AS",
+ WD_QUIRK_SPLIT_MOD15_WRITE },
+ { "ST360015AS",
+ WD_QUIRK_SPLIT_MOD15_WRITE },
+ { NULL,
+ 0 }
};
static const struct wd_quirk *
@@ -373,10 +375,6 @@
if (wd->sc_quirks & WD_QUIRK_SPLIT_MOD15_WRITE) {
aprint_error_dev(self, "drive corrupts write transfers with certain controllers, consider replacing\n");
}
-
- if (wd->sc_quirks & WD_QUIRK_BAD_NCQ) {
- aprint_error_dev(self, "drive NCQ support broken, NCQ disabled, consider replacing\n");
- }
}
if ((wd->sc_params.atap_multi & 0xff) > 1) {
@@ -2183,7 +2181,7 @@
return;
}
- wd->drv_ncq = ((wd->sc_quirks & WD_QUIRK_BAD_NCQ) == 0) ? true : false;
+ wd->drv_ncq = true;
if ((error = sysctl_createv(&wd->nodelog, 0, NULL, NULL,
CTLFLAG_READWRITE, CTLTYPE_BOOL, "use_ncq",
SYSCTL_DESCR("use NCQ if supported"),
Home |
Main Index |
Thread Index |
Old Index