On Sun, Oct 28, 2012 at 6:45 PM, Jingoo Han <jg1.han@xxxxxxxxxxx> wrote: > This patch fixes build warnings as below: > > drivers/leds/leds-lp5523.c: In function 'lp5523_selftest': > drivers/leds/leds-lp5523.c:496:18: warning: 'adc' may be used uninitialized in this function [-Wuninitialized] > drivers/leds/leds-lp5523.c:471:5: warning: 'vdd' may be used uninitialized in this function [-Wuninitialized] > drivers/leds/leds-lp5523.c: In function 'lp5523_probe': > drivers/leds/leds-lp5523.c:252:9: warning: 'status' may be used uninitialized in this function [-Wuninitialized] > drivers/leds/leds-lp5523.c:201:5: note: 'status' was declared here > > If lp5523_read() returns an error, problems will happen. Thus, > when lp5523_read() returns an error, it should be handled. > > Signed-off-by: Jingoo Han <jg1.han@xxxxxxxxxxx> Looks good to me, applied. Thanks, -Bryan > --- > drivers/leds/leds-lp5523.c | 20 +++++++++++++++++--- > 1 files changed, 17 insertions(+), 3 deletions(-) > > diff --git a/drivers/leds/leds-lp5523.c b/drivers/leds/leds-lp5523.c > index 97994ff..4ddf7b4 100644 > --- a/drivers/leds/leds-lp5523.c > +++ b/drivers/leds/leds-lp5523.c > @@ -248,7 +248,10 @@ static int lp5523_configure(struct i2c_client *client) > > /* Let the programs run for couple of ms and check the engine status */ > usleep_range(3000, 6000); > - lp5523_read(client, LP5523_REG_STATUS, &status); > + ret = lp5523_read(client, LP5523_REG_STATUS, &status); > + if (ret < 0) > + return ret; > + > status &= LP5523_ENG_STATUS_MASK; > > if (status == LP5523_ENG_STATUS_MASK) { > @@ -464,10 +467,16 @@ static ssize_t lp5523_selftest(struct device *dev, > LP5523_EN_LEDTEST | 16); > usleep_range(3000, 6000); /* ADC conversion time is typically 2.7 ms */ > ret = lp5523_read(chip->client, LP5523_REG_STATUS, &status); > + if (ret < 0) > + goto fail; > + > if (!(status & LP5523_LEDTEST_DONE)) > usleep_range(3000, 6000); /* Was not ready. Wait little bit */ > > - ret |= lp5523_read(chip->client, LP5523_REG_LED_TEST_ADC, &vdd); > + ret = lp5523_read(chip->client, LP5523_REG_LED_TEST_ADC, &vdd); > + if (ret < 0) > + goto fail; > + > vdd--; /* There may be some fluctuation in measurement */ > > for (i = 0; i < LP5523_LEDS; i++) { > @@ -489,9 +498,14 @@ static ssize_t lp5523_selftest(struct device *dev, > /* ADC conversion time is 2.7 ms typically */ > usleep_range(3000, 6000); > ret = lp5523_read(chip->client, LP5523_REG_STATUS, &status); > + if (ret < 0) > + goto fail; > + > if (!(status & LP5523_LEDTEST_DONE)) > usleep_range(3000, 6000);/* Was not ready. Wait. */ > - ret |= lp5523_read(chip->client, LP5523_REG_LED_TEST_ADC, &adc); > + ret = lp5523_read(chip->client, LP5523_REG_LED_TEST_ADC, &adc); > + if (ret < 0) > + goto fail; > > if (adc >= vdd || adc < LP5523_ADC_SHORTCIRC_LIM) > pos += sprintf(buf + pos, "LED %d FAIL\n", i); > -- > 1.7.1 > > -- To unsubscribe from this list: send the line "unsubscribe linux-leds" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html