Print this page
8244 Some drives report a bogus reference temperature

*** 19,32 **** * CDDL HEADER END */ /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" - #include <assert.h> #include <errno.h> #include <libdiskstatus.h> #include <limits.h> #include <stdlib.h> --- 19,32 ---- * CDDL HEADER END */ /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * + * Copyright 2017 RackTop Systems. */ #include <assert.h> #include <errno.h> #include <libdiskstatus.h> #include <limits.h> #include <stdlib.h>
*** 1075,1086 **** plen = lphp->lph_length + sizeof (scsi_log_parameter_header_t); } if (reftemp != INVALID_TEMPERATURE && curtemp != INVALID_TEMPERATURE && ! curtemp > reftemp) sip->si_dsp->ds_faults |= DS_FAULT_OVERTEMP; return (0); } --- 1075,1091 ---- 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 && (reftemp > 40 || curtemp > 60)) sip->si_dsp->ds_faults |= DS_FAULT_OVERTEMP; return (0); }