Hi Alexander, It is not needed for a macro. I am modifying do---while() loop for ROUND macro. /** * Expand the cipher key into the encryption key schedule. * * @return the number of rounds for the given cipher key size. */ #define ROUND(i, d, s) \ do { \ d##0 = TE0(s##0) ^ TE1(s##1) ^ TE2(s##2) ^ TE3(s##3) ^ rk[4 * i]; \ d##1 = TE0(s##1) ^ TE1(s##2) ^ TE2(s##3) ^ TE3(s##0) ^ rk[4 * i + 1]; \ d##2 = TE0(s##2) ^ TE1(s##3) ^ TE2(s##0) ^ TE3(s##1) ^ rk[4 * i + 2]; \ d##3 = TE0(s##3) ^ TE1(s##0) ^ TE2(s##1) ^ TE3(s##2) ^ rk[4 * i + 3]; \ } while (0) On Tue, Mar 14, 2017 at 5:02 PM, Alexander Kapshuk <alexander.kapshuk@xxxxxxxxx> wrote: > On Tue, Mar 14, 2017 at 1:26 PM, Pushkar Jambhlekar > <pushkar.iit@xxxxxxxxx> wrote: >> Description: >> There should not be ';' after do ... while(0) in macro defination >> >> Signed-off-by: Pushkar Jambhlekar <pushkar.iit@xxxxxxxxx> >> --- >> drivers/staging/rtl8188eu/core/rtw_security.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/staging/rtl8188eu/core/rtw_security.c b/drivers/staging/rtl8188eu/core/rtw_security.c >> index b283a490..5b1ef22 100644 >> --- a/drivers/staging/rtl8188eu/core/rtw_security.c >> +++ b/drivers/staging/rtl8188eu/core/rtw_security.c >> @@ -1690,4 +1690,4 @@ do { \ >> d##1 = TE0(s##1) ^ TE1(s##2) ^ TE2(s##3) ^ TE3(s##0) ^ rk[4 * i + 1]; \ >> d##2 = TE0(s##2) ^ TE1(s##3) ^ TE2(s##0) ^ TE3(s##1) ^ rk[4 * i + 2]; \ >> d##3 = TE0(s##3) ^ TE1(s##0) ^ TE2(s##1) ^ TE3(s##2) ^ rk[4 * i + 3]; \ >> -} while (0); >> +} while (0) >> -- >> 2.7.4 >> > > A semicolon is required after 'while(bool);' in 'do..while'. > Without it, you get a compile time error. -- Jambhlekar Pushkar Arun M.Tech IIT Roorkee _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel