提交 b9e349f7 编写于 作者: J Jean Delvare 提交者: Greg Kroah-Hartman

it87: Prevent overflow on fan clock divider write

it87: Prevent overflow on fan clock divider write

The highest possible clock divider for fan1 and fan2 is 128.
Signed-off-by: NJean Delvare <khali@linux-fr.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 9060f8bd
...@@ -198,7 +198,7 @@ static inline u16 FAN16_TO_REG(long rpm) ...@@ -198,7 +198,7 @@ static inline u16 FAN16_TO_REG(long rpm)
static int DIV_TO_REG(int val) static int DIV_TO_REG(int val)
{ {
int answer = 0; int answer = 0;
while ((val >>= 1) != 0) while (answer < 7 && (val >>= 1))
answer++; answer++;
return answer; return answer;
} }
...@@ -563,7 +563,7 @@ static ssize_t set_fan_div(struct device *dev, struct device_attribute *attr, ...@@ -563,7 +563,7 @@ static ssize_t set_fan_div(struct device *dev, struct device_attribute *attr,
struct i2c_client *client = to_i2c_client(dev); struct i2c_client *client = to_i2c_client(dev);
struct it87_data *data = i2c_get_clientdata(client); struct it87_data *data = i2c_get_clientdata(client);
int val = simple_strtol(buf, NULL, 10); unsigned long val = simple_strtoul(buf, NULL, 10);
int i, min[3]; int i, min[3];
u8 old; u8 old;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册