• Axel Lin's avatar
    hwmon: (dme1737) Prevent overflow problem when writing large limits · d58e47d7
    Axel Lin authored
    On platforms with sizeof(int) < sizeof(long), writing a temperature
    limit larger than MAXINT will result in unpredictable limit values
    written to the chip. Avoid auto-conversion from long to int to fix
    the problem.
    
    Voltage limits, fan minimum speed, pwm frequency, pwm ramp rate, and
    other attributes have the same problem, fix them as well.
    
    Zone temperature limits are signed, but were cached as u8, causing
    unepected values to be reported for negative temperatures. Cache as
    s8 to fix the problem.
    
    vrm is an u8, so the written value needs to be limited to [0, 255].
    Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
    [Guenter Roeck: Fix zone temperature cache]
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    d58e47d7
dme1737.c 77.9 KB