• Michael Brunner's avatar
    thermal_sys: check get_temp return value · 0d288162
    Michael Brunner authored
    The return value of the get_temp function is not checked when doing a
    thermal zone update.  This may lead to a critical shutdown if get_temp
    fails and the content of the temp variable is incorrectly set higher than
    the critical trip point.
    
    This has been observed on a system with incorrect ACPI implementation
    where the corresponding methods were not serialized and therefore
    sometimes triggered ACPI errors (AE_ALREADY_EXISTS).  The following
    critical shutdowns indicated a temperature of 2097 C, which was obviously
    wrong.
    
    The patch adds a return value check that jumps over all trip point
    evaluations printing a warning if get_temp fails.  The trip points are
    evaluated again on the next polling interval with successful get_temp
    execution.
    Signed-off-by: default avatarMichael Brunner <mibru@gmx.de>
    Acked-by: default avatarZhang Rui <rui.zhang@intel.com>
    Cc: Len Brown <lenb@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    0d288162
thermal_sys.c 31.3 KB