drivers/leds/leds-lp5521.c: avoid writing uninitialized value to LP5521_REG_OP_MODE...
authorAxel Lin <axel.lin@gmail.com>
Tue, 1 Nov 2011 00:12:12 +0000 (17:12 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 1 Nov 2011 00:30:55 +0000 (17:30 -0700)
If lp5521_read fails, engine_state variable is not initialized.
If lp5521_read fails, we should return error.
This patch fixes below warning.

  CC      drivers/leds/leds-lp5521.o
drivers/leds/leds-lp5521.c: In function 'lp5521_set_engine_mode':
drivers/leds/leds-lp5521.c:168: warning: 'engine_state' may be used uninitialized in this function

[akpm@linux-foundation.org: remove unneeded "ret |="]
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Cc: Samu Onkalo <samu.p.onkalo@nokia.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/leds/leds-lp5521.c

index 9fc122c..16f281b 100644 (file)
@@ -175,14 +175,14 @@ static int lp5521_set_engine_mode(struct lp5521_engine *engine, u8 mode)
                mode = LP5521_CMD_DIRECT;
 
        ret = lp5521_read(client, LP5521_REG_OP_MODE, &engine_state);
+       if (ret < 0)
+               return ret;
 
        /* set mode only for this engine */
        engine_state &= ~(engine->engine_mask);
        mode &= engine->engine_mask;
        engine_state |= mode;
-       ret |= lp5521_write(client, LP5521_REG_OP_MODE, engine_state);
-
-       return ret;
+       return lp5521_write(client, LP5521_REG_OP_MODE, engine_state);
 }
 
 static int lp5521_load_program(struct lp5521_engine *eng, const u8 *pattern)