Re: [RESEND PATCH v3 05/11] mtd: rawnand: vf610_nfc: add initializer to avoid -Wmaybe-uninitialized

From: Masahiro Yamada
Date: Fri May 03 2019 - 06:37:43 EST


Hi Miquel,

On Thu, May 2, 2019 at 11:14 PM Miquel Raynal <miquel.raynal@xxxxxxxxxxx> wrote:
>
> Hi Masahiro,
>
> Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote on Tue, 23 Apr
> 2019 12:49:53 +0900:
>
> > This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common
> > place. We need to eliminate potential issues beforehand.
> >
> > Kbuild test robot has never reported -Wmaybe-uninitialized warning
> > for this probably because vf610_nfc_run() is inlined by the x86
> > compiler's inlining heuristic.
> >
> > If CONFIG_OPTIMIZE_INLINING is enabled for a different architecture
> > and vf610_nfc_run() is not inlined, the following warning is reported:
> >
> > drivers/mtd/nand/raw/vf610_nfc.c: In function âvf610_nfc_cmdâ:
> > drivers/mtd/nand/raw/vf610_nfc.c:455:3: warning: âoffsetâ may be used uninitialized in this function [-Wmaybe-uninitialized]
> > vf610_nfc_rd_from_sram(instr->ctx.data.buf.in + offset,
> > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > nfc->regs + NFC_MAIN_AREA(0) + offset,
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > trfr_sz, !nfc->data_access);
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> IMHO this patch has no dependencies with this series.


This patch is the prerequisite for 11/11.
https://lore.kernel.org/patchwork/patch/1064959/


Without the correct patch order,
the kbuild test robot reports the warning.


> Would you mind sending it alone with the proper Fixes tag?


I do not think Fixes is necessary.

Nobody has noticed this potential issue before.
Without 11/11, probably we cannot reproduce this warning.


BTW, this series has been for a while in linux-next.


>
> >
> > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> > ---
> >
> > Changes in v3: None
> > Changes in v2:
> > - split into a separate patch
> >
> > drivers/mtd/nand/raw/vf610_nfc.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/mtd/nand/raw/vf610_nfc.c b/drivers/mtd/nand/raw/vf610_nfc.c
> > index a662ca1970e5..19792d725ec2 100644
> > --- a/drivers/mtd/nand/raw/vf610_nfc.c
> > +++ b/drivers/mtd/nand/raw/vf610_nfc.c
> > @@ -364,7 +364,7 @@ static int vf610_nfc_cmd(struct nand_chip *chip,
> > {
> > const struct nand_op_instr *instr;
> > struct vf610_nfc *nfc = chip_to_nfc(chip);
> > - int op_id = -1, trfr_sz = 0, offset;
> > + int op_id = -1, trfr_sz = 0, offset = 0;
> > u32 col = 0, row = 0, cmd1 = 0, cmd2 = 0, code = 0;
> > bool force8bit = false;
> >
>
> Thanks,
> MiquÃl
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/



--
Best Regards

Masahiro Yamada