Re: [PATCH] staging: dgnc: Patch includes the checkpatch fixes

From: Dan Carpenter
Date: Fri Dec 11 2015 - 09:19:03 EST


On Fri, Dec 11, 2015 at 05:10:43AM -0500, Sanidhya Solanki wrote:
> On Fri, 11 Dec 2015 16:02:33 +0300
> Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
>
> > > Signed-off-by: Sanidhya Solanki <jpage.lkml@xxxxxxxxx>
> > > @@ -110,7 +98,16 @@ static ssize_t dgnc_vpd_show(struct device *p, struct device_attribute *attr,
> > > int count = 0;
> > > int i = 0;
> > >
> > > - DGNC_VERIFY_BOARD(p, bd);
> > > + do {
> > > + if (!p)
> > > + return 0;
> > > +
> > > + bd = dev_get_drvdata(p);
> > > + if (!bd || bd->magic != DGNC_BOARD_MAGIC)
> > > + return 0;
> > > + if (bd->state != BOARD_READY)
> > > + return 0;
> > > + } while (0);
> >
> > Google about why do while(0) loops are used in macros and then redo
> > this. Mostly the patch isn't bad, but I suspect I'm going to complain
> > about how you split up some of the long lines.
>
> Let me just be completely sure that you and I are on the same page
> here. The macro was used to replace the do-while loop, I replaced all
> instances of the macro with the the actual loop. Both pieces were
> originally part of the code, just using macros in place of do-while
> statements. Do you still want me to change it? Maybe the original
> author did it for a specific reason.
>

https://www.quora.com/What-is-the-purpose-of-using-do-while-0-in-macros

Do while(0) is used to make a macro look like a function. Since we have
deleted the macro we don't need the do while.

regards,
dan carpenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/