[PATCH] i2c-mxs: fix compile warning in mxs_i2c_xfer()
Dong Aisheng-B29396
B29396 at freescale.com
Thu Nov 24 04:02:21 EST 2011
> -----Original Message-----
> From: linux-arm-kernel-bounces at lists.infradead.org [mailto:linux-arm-
> kernel-bounces at lists.infradead.org] On Behalf Of Wolfram Sang
> Sent: Thursday, November 24, 2011 4:38 PM
> To: Uwe Kleine-König
> Cc: Shawn Guo; linux-arm-kernel at lists.infradead.org; Ben Dooks; linux-
> i2c at vger.kernel.org
> Subject: Re: [PATCH] i2c-mxs: fix compile warning in mxs_i2c_xfer()
>
> On Thu, Nov 24, 2011 at 09:29:03AM +0100, Uwe Kleine-König wrote:
> > Hello Shawn,
> >
> > On Thu, Nov 24, 2011 at 03:52:20PM +0800, Shawn Guo wrote:
> > > CC drivers/i2c/busses/i2c-mxs.o
> > > drivers/i2c/busses/i2c-mxs.c: In function ‘mxs_i2c_xfer’:
> > > drivers/i2c/busses/i2c-mxs.c:196:6: warning: ‘data’ may be used
> > > uninitialized in this function
> > >
> > > Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
> > > ---
> > > drivers/i2c/busses/i2c-mxs.c | 2 +-
> > > 1 files changed, 1 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/drivers/i2c/busses/i2c-mxs.c
> > > b/drivers/i2c/busses/i2c-mxs.c index 7e78f7c..00f098f 100644
> > > --- a/drivers/i2c/busses/i2c-mxs.c
> > > +++ b/drivers/i2c/busses/i2c-mxs.c
> > > @@ -193,7 +193,7 @@ static int mxs_i2c_wait_for_data(struct
> > > mxs_i2c_dev *i2c)
> > >
> > > static int mxs_i2c_finish_read(struct mxs_i2c_dev *i2c, u8 *buf,
> > > int len) {
> > > - u32 data;
> > > + u32 data = 0;
> > > int i;
> > >
> > > for (i = 0; i < len; i++) {
> > Looks like a stupid compiler. Then better use
> >
> > u32 uninitialized_var(data);
>
> Leave it as it is and fix the compiler? Will do another test later to
> make sure.
>
Compiler is wrong?
Just from the code that it seems to be right the 'data' might be used
uninitialized.
Something I missed?
static int mxs_i2c_finish_read(struct mxs_i2c_dev *i2c, u8 *buf, int len)
{
u32 data;
int i;
for (i = 0; i < len; i++) {
if ((i & 3) == 0) {
if (mxs_i2c_wait_for_data(i2c))
return -ETIMEDOUT;
data = readl(i2c->regs + MXS_I2C_QUEUEDATA);
}
buf[i] = data & 0xff;
data >>= 8;
}
return 0;
}
Regards
Dong Aisheng
More information about the linux-arm-kernel
mailing list