Message ID | f526f90ea62741716de2ecfa310ba22d8cf1d3c2.1557377015.git.viresh.kumar@linaro.org |
---|---|
State | Accepted |
Commit | 34765c19cce3cba0c94d471d2e84f71d4978996e |
Headers | show |
Series | i2c: sh_mobile: Fix compilation warning | expand |
On Thu, May 09, 2019 at 10:13:46AM +0530, Viresh Kumar wrote: > This currently generates a warning: > > drivers/i2c/busses/i2c-sh_mobile.c: In function 'sh_mobile_i2c_isr': > drivers/i2c/busses/i2c-sh_mobile.c:399:26: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] > > Though the code looks okay and shouldn't ever use the variable > uninitialized. > > Fix the warning by moving the code around and getting rid of 'data'. > > Compile tested only. > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Tested on a Renesas Lager board (R-Car H2). Dumping register sets produces identical results. Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com> And code is actually cleaner now. Applied to for-next, thanks!
On 29-05-20, 14:12, Wolfram Sang wrote: > On Thu, May 09, 2019 at 10:13:46AM +0530, Viresh Kumar wrote: > > This currently generates a warning: > > > > drivers/i2c/busses/i2c-sh_mobile.c: In function 'sh_mobile_i2c_isr': > > drivers/i2c/busses/i2c-sh_mobile.c:399:26: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] > > > > Though the code looks okay and shouldn't ever use the variable > > uninitialized. > > > > Fix the warning by moving the code around and getting rid of 'data'. > > > > Compile tested only. > > > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > > Tested on a Renesas Lager board (R-Car H2). Dumping register sets > produces identical results. > > Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com> > > And code is actually cleaner now. > > Applied to for-next, thanks! > Almost after an year, wondering on how you reached this patch now :)
> Almost after an year, wondering on how you reached this patch now :)
Another developer sent the same patch. And last time I was unsure if I
liked the new code better (for reasons I can't recall anymore); this
time it was clear to me.
diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c index 8777af4c695e..945eb8504fb7 100644 --- a/drivers/i2c/busses/i2c-sh_mobile.c +++ b/drivers/i2c/busses/i2c-sh_mobile.c @@ -369,7 +369,6 @@ static int sh_mobile_i2c_isr_tx(struct sh_mobile_i2c_data *pd) static int sh_mobile_i2c_isr_rx(struct sh_mobile_i2c_data *pd) { - unsigned char data; int real_pos; /* switch from TX (address) to RX (data) adds two interrupts */ @@ -390,13 +389,11 @@ static int sh_mobile_i2c_isr_rx(struct sh_mobile_i2c_data *pd) if (real_pos < 0) i2c_op(pd, OP_RX_STOP); else - data = i2c_op(pd, OP_RX_STOP_DATA); + pd->msg->buf[real_pos] = i2c_op(pd, OP_RX_STOP_DATA); } else if (real_pos >= 0) { - data = i2c_op(pd, OP_RX); + pd->msg->buf[real_pos] = i2c_op(pd, OP_RX); } - if (real_pos >= 0) - pd->msg->buf[real_pos] = data; done: pd->pos++; return pd->pos == (pd->msg->len + 2);
This currently generates a warning: drivers/i2c/busses/i2c-sh_mobile.c: In function 'sh_mobile_i2c_isr': drivers/i2c/busses/i2c-sh_mobile.c:399:26: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] Though the code looks okay and shouldn't ever use the variable uninitialized. Fix the warning by moving the code around and getting rid of 'data'. Compile tested only. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/i2c/busses/i2c-sh_mobile.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) -- 2.21.0.rc0.269.g1a574e7a288b