Print this page
8244 Some drives report a bogus reference temperature

@@ -19,14 +19,14 @@
  * CDDL HEADER END
  */
 /*
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright 2017 RackTop Systems.
  */
 
-#pragma ident   "%Z%%M% %I%     %E% SMI"
-
 #include <assert.h>
 #include <errno.h>
 #include <libdiskstatus.h>
 #include <limits.h>
 #include <stdlib.h>

@@ -1075,12 +1075,17 @@
 
                 plen = lphp->lph_length +
                     sizeof (scsi_log_parameter_header_t);
         }
 
+        /*
+         * Take the reference temperature under advisory since it is often
+         * reported incorrectly.  If it's 40C or less we ignore it and only
+         * register a fault once the current temperature reaches above 60C.
+         */
         if (reftemp != INVALID_TEMPERATURE && curtemp != INVALID_TEMPERATURE &&
-            curtemp > reftemp)
+            curtemp > reftemp && (reftemp > 40 || curtemp > 60))
                 sip->si_dsp->ds_faults |= DS_FAULT_OVERTEMP;
 
         return (0);
 }