summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-08-05 23:41:54 +0200
committerLennart Poettering <lennart@poettering.net>2009-08-05 23:41:54 +0200
commit4fdaf003a3b7277c1f3aec45d52c362f6aa187bc (patch)
treee59365f000c8099aa2e7de1856bcf3a29fbd4d89
parentaa9c9a5ecec013c8a1da4ea5f1322696f097e1f6 (diff)
blacklist attribute 5 of an hitachi drive
https://bugzilla.redhat.com/show_bug.cgi?id=506254
-rw-r--r--atasmart.c37
1 files changed, 24 insertions, 13 deletions
diff --git a/atasmart.c b/atasmart.c
index d11ab08..f11c5c4 100644
--- a/atasmart.c
+++ b/atasmart.c
@@ -1249,18 +1249,19 @@ static const SkSmartAttributeInfo const attribute_info[256] = {
/* %STRINGPOOLSTOP% */
typedef enum SkSmartQuirk {
- SK_SMART_QUIRK_9_POWERONMINUTES = 1,
- SK_SMART_QUIRK_9_POWERONSECONDS = 2,
- SK_SMART_QUIRK_9_POWERONHALFMINUTES = 4,
- SK_SMART_QUIRK_192_EMERGENCYRETRACTCYCLECT = 8,
- SK_SMART_QUIRK_193_LOADUNLOAD = 16,
- SK_SMART_QUIRK_194_10XCELSIUS = 32,
- SK_SMART_QUIRK_194_UNKNOWN = 64,
- SK_SMART_QUIRK_200_WRITEERRORCOUNT = 128,
- SK_SMART_QUIRK_201_DETECTEDTACOUNT = 256,
- SK_SMART_QUIRK_9_UNKNOWN = 512,
- SK_SMART_QUIRK_197_UNKNOWN = 1024,
- SK_SMART_QUIRK_198_UNKNOWN = 2048,
+ SK_SMART_QUIRK_9_POWERONMINUTES = 0x0001,
+ SK_SMART_QUIRK_9_POWERONSECONDS = 0x0002,
+ SK_SMART_QUIRK_9_POWERONHALFMINUTES = 0x0004,
+ SK_SMART_QUIRK_192_EMERGENCYRETRACTCYCLECT = 0x0008,
+ SK_SMART_QUIRK_193_LOADUNLOAD = 0x0010,
+ SK_SMART_QUIRK_194_10XCELSIUS = 0x0020,
+ SK_SMART_QUIRK_194_UNKNOWN = 0x0040,
+ SK_SMART_QUIRK_200_WRITEERRORCOUNT = 0x0080,
+ SK_SMART_QUIRK_201_DETECTEDTACOUNT = 0x0100,
+ SK_SMART_QUIRK_5_UNKNOWN = 0x0200,
+ SK_SMART_QUIRK_9_UNKNOWN = 0x0400,
+ SK_SMART_QUIRK_197_UNKNOWN = 0x0800,
+ SK_SMART_QUIRK_198_UNKNOWN = 0x1000,
} SkSmartQuirk;
/* %STRINGPOOLSTART% */
@@ -1274,6 +1275,7 @@ static const char *quirk_name[] = {
"194_UNKNOWN",
"200_WRITEERRORCOUNT",
"201_DETECTEDTACOUNT",
+ "5_UNKNOWN",
"9_UNKNOWN",
"197_UNKNOWN",
"198_UNKNOWN",
@@ -1414,7 +1416,10 @@ static const SkSmartQuirkDatabase quirk_database[] = { {
SK_SMART_QUIRK_9_POWERONMINUTES|
SK_SMART_QUIRK_193_LOADUNLOAD
}, {
-
+ "^HTS541010G9SA00$",
+ "^MBZOC60P$",
+ SK_SMART_QUIRK_5_UNKNOWN
+ }, {
NULL,
NULL,
0
@@ -1497,6 +1502,12 @@ static const SkSmartAttributeInfo *lookup_attribute(SkDisk *d, uint8_t id) {
if (quirk) {
switch (id) {
+ case 5:
+ if (quirk & SK_SMART_QUIRK_5_UNKNOWN)
+ return NULL;
+
+ break;
+
case 9:
/* %STRINGPOOLSTART% */
if (quirk & SK_SMART_QUIRK_9_POWERONMINUTES) {