> -----Original Message----- > From: linux-arm-kernel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:linux-arm- > kernel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Wolfram Sang > Sent: Thursday, November 24, 2011 4:38 PM > To: Uwe Kleine-König > Cc: Shawn Guo; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; Ben Dooks; linux- > i2c@xxxxxxxxxxxxxxx > 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@xxxxxxxxxx> > > > --- > > > 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 ��.n��������+%������w��{.n�����{��-��)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥