On Thu, 2010-10-28 at 06:41 +0200, ext Dan Carpenter wrote: > There was a signedness bug so "ret" was never less than zero and that > breaks the error handling. Also in the original code it would overwrite > ret and the result is still negative but it's bogus number instead of > the correct error code. > > Signed-off-by: Dan Carpenter <error27@xxxxxxxxx> Acked-by: Samu Onkalo <samu.p.onkalo@xxxxxxxxx> > > diff --git a/drivers/misc/bh1770glc.c b/drivers/misc/bh1770glc.c > index cee632e..d79a972 100644 > --- a/drivers/misc/bh1770glc.c > +++ b/drivers/misc/bh1770glc.c > @@ -649,7 +649,7 @@ static ssize_t bh1770_power_state_store(struct device *dev, > { > struct bh1770_chip *chip = dev_get_drvdata(dev); > unsigned long value; > - size_t ret; > + ssize_t ret; > > if (strict_strtoul(buf, 0, &value)) > return -EINVAL; > @@ -659,8 +659,12 @@ static ssize_t bh1770_power_state_store(struct device *dev, > pm_runtime_get_sync(dev); > > ret = bh1770_lux_rate(chip, chip->lux_rate_index); > - ret |= bh1770_lux_interrupt_control(chip, BH1770_ENABLE); > + if (ret < 0) { > + pm_runtime_put(dev); > + goto leave; > + } > > + ret = bh1770_lux_interrupt_control(chip, BH1770_ENABLE); > if (ret < 0) { > pm_runtime_put(dev); > goto leave; -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html