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);
}