leds: leds-lp5521: Avoid writing uninitialized value to LP5521_REG_OP_MODE register
PATCH 1/1 leds: leds-lp5521: Avoid writing uninitialized value to LP5521_REG_OP_MODE register
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.odrivers/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
--- drivers/leds/leds-lp5521.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
drivers/leds/leds-lp5521.c +2 -0
@@ -175,6 +175,8 @@ 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);
Signature · 1 line
1.7.4.1
Quoted 18 lines · On Wed, 05 Oct 2011 17:19:38 +0800 Axel Lin <[email protected]> wrote:
If
lp5521_readfails,engine_statevariable is not initialized. Iflp5521_readfails, we should return error.
This patch fixes below warning.CC
drivers/leds/leds-lp5521.odrivers/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 functionSigned-off-by Axel Lin <[email protected]>--- drivers/leds/leds-lp5521.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)drivers/leds/leds-lp5521.c +0
-0
drivers/leds/leds-lp5521.c static int lp5521_set_engine_mode(struct lp5521_engine *engine, u8 mode) · line 182
Quoted 8 lines
drivers/leds/leds-lp5521.c +2
-0@@ -175,6 +175,8 @@ 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);
OK. And the later "ret |=" whcih was previously a bug is now just unneeded.
drivers/leds/leds-lp5521.c renamed from drivers/leds/leds-lp5521.c~leds-leds-lp5521-avoid-writing-uninitialized-value-to-lp5521_reg_op_mode-register-fix +1 -3
@@ -182,9 +182,7 @@ static int lp5521_set_engine_mode(struct 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)
_