Thread (7 messages) 7 messages, 3 authors, 2008-03-10

Re: ADT746X: logical-bitwise & confusion in set_max_duty_at_crit()

flat view

From: Segher Boessenkool <hidden>
Date: 2008-03-10 09:14:29
Also in: lkml

quoted hunk ↗ jump to hunk
diff --git a/drivers/hwmon/adt7473.c b/drivers/hwmon/adt7473.c
index 9587869..8ea7da2 100644
--- a/drivers/hwmon/adt7473.c
+++ b/drivers/hwmon/adt7473.c
@@ -570,7 +570,7 @@ static ssize_t set_max_duty_at_crit(struct device *dev,
 	struct i2c_client *client = to_i2c_client(dev);
 	struct adt7473_data *data = i2c_get_clientdata(client);
 	int temp = simple_strtol(buf, NULL, 10);
-	temp = temp && 0xFF;
+	temp &= 0xFF;

 	mutex_lock(&data->lock);
 	data->max_duty_at_overheat = temp;
The & 0xff here is bogus anyway; temp is only ever used as an u8,
so just declare it as that, or do proper overflow/underflow checking
on it.  The patch will need testing on hardware too, since it changes
behaviour (it should be a bugfix, but who knows).


Segher
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help