From: Axel Lin Date: Tue, 5 Aug 2014 02:08:31 +0000 (+0800) Subject: hwmon: (lm92) Prevent overflow problem when writing large limits X-Git-Tag: v3.2.64~181 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b2d64341dab783119bc1e27b48aba99738bd93e8;p=pandora-kernel.git hwmon: (lm92) Prevent overflow problem when writing large limits commit 5b963089161b8fb244889c972edf553b9d737545 upstream. 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. The hysteresis temperature range depends on the value of data->temp[attr->index], since val is subtracted from it. Use a wider clamp, [-120000, 220000] should do to cover the possible range. Also add missing TEMP_TO_REG() on writes into cached hysteresis value. Also uses clamp_val to simplify the code a bit. Signed-off-by: Axel Lin [Guenter Roeck: Fixed double TEMP_TO_REG on hysteresis updates] Signed-off-by: Guenter Roeck [bwh: Backported to 3.2: - s/temp\[attr->index\]/temp1_crit/ - s/temp\[t_hyst\]/temp1_hyst/] Signed-off-by: Ben Hutchings --- Reading git-diff-tree failed