Messages in this thread | | | From | Segher Boessenkool <> | Subject | Re: ADT746X: logical-bitwise & confusion in set_max_duty_at_crit() | Date | Mon, 10 Mar 2008 10:13:34 +0100 |
| |
> 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
| |