Re: [PATCH] net, llc: Avoid undefined behaviour inllc_conn_ac_inc_vr_by_1()

From: David Miller
Date: Sat Jun 25 2011 - 20:05:01 EST


From: Jesper Juhl <jj@xxxxxxxxxxxxx>
Date: Sun, 26 Jun 2011 00:11:12 +0200 (CEST)

> Introduce a sequence point (;) between two writes to llc_sk(sk)->vR in
> net/llc/llc_c_ac.c:llc_conn_ac_inc_vr_by_1() so that the order in
> which the writes happen become well defined.
>
> While the code may work fine now it may break at any time with a
> different compiler, a new version of current compiler or even just a
> different optimization level of the current compiler. Much better to
> clearly express what's intended in a way that guarantees the result.
>
> Signed-off-by: Jesper Juhl <jj@xxxxxxxxxxxxx>

How about fixing the macro so that it doesn't have side effects
like this?

That's much better than a 6 line (improperly formatted, BTW) comment
every time someone tried to use that macros with an lvalue that isn't
a local variable.
--
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/