/* * Sometimes the temperature sensor returns 0x99, which is out of range. * In this case we return (once) the previous cached value. For example: # 1003655137 00000058 00005a4b # 1003655138 00000099 00003a80 <--- 0x99 = 153 degrees # 1003655139 00000054 00005c52 */ if (temp > I8K_MAX_TEMP) { temp = prev; prev = I8K_MAX_TEMP; } else { prev = temp; } 
/* * Sometimes the temperature sensor returns 0x99, which is out of range. * In this case we return (once) the previous cached value. For example: # 1003655137 00000058 00005a4b # 1003655138 00000099 00003a80 <--- 0x99 = 153 degrees # 1003655139 00000054 00005c52 */ if (temp > I8K_MAX_TEMP) { temp = prev; prev = I8K_MAX_TEMP; } else { prev = temp; } 
static int i8k_get_cpu_temp(void){    SMMRegisters regs = { 0, 0, 0, 0, 0, 0 };    int rc;    int temp;#ifdef I8K_TEMPERATURE_BUG    static int prev = 0;#endif    regs.eax = I8K_SMM_GET_TEMP;    if ((rc=i8k_smm(&regs)) < 0) {	return rc;    }    temp = regs.eax & 0xff;#ifdef I8K_TEMPERATURE_BUG    /*     * Sometimes the temperature sensor returns 0x99, which is out of range.     * In this case we return (once) the previous cached value. For example:     # 1003655137 00000058 00005a4b     # 1003655138 00000099 00003a80 <--- 0x99 = 153 degrees     # 1003655139 00000054 00005c52     */    if (temp > I8K_MAX_TEMP) {	temp = prev;	prev = I8K_MAX_TEMP;    } else {	prev = temp;    }#endif    return temp;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/dec63ec32ea486ab915138e8790084c22a3f7bf6/i8k.c/clean/drivers/char/i8k.c