On Tue, Sep 01, 2020 at 12:43:11PM +0200, antoniprzybylik wrote: ^^^^^^^^^^^^^^^ Please, fix your From: header so that it says "Antoni Przybylik". > Such macros are dangerous. Consider following example: > #define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && gdm->port.count) > GDM_TTY_READY(a + b) > This macro will be expanded in such a way: > (a + b && a + b->tty_dev && a + b->port.count) > And it will lead to errors. > > Signed-off-by: Antoni Przybylik <antoni.przybylik@xxxxx> > --- > drivers/staging/gdm724x/gdm_tty.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c > index 6e813693a766..eab5c75ee5b1 100644 > --- a/drivers/staging/gdm724x/gdm_tty.c > +++ b/drivers/staging/gdm724x/gdm_tty.c > @@ -27,7 +27,7 @@ > > #define MUX_TX_MAX_SIZE 2048 > > -#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && gdm->port.count) > +#define GDM_TTY_READY(gdm) ((gdm) && (gdm)->tty_dev && (gdm)->port.count) I cannot imagine a real life example where adding these parentheses will prevent a bug. One idea it to silence this by making dereference ops like this a special case where checkpatch.pl doesn't suggest adding parentheses. regards, dan carpenter _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel