>> +
>> +/*
>> + * Copy @count items from @LIVE to @SAVE if op is CR_CPT (otherwise,
>> + * copy in the reverse direction)
>> + */
>> +#define CR_COPY_ARRAY(op, SAVE, LIVE, count)                                
>> \
>> +    do {                                                            \
>> +            BUILD_BUG_ON(sizeof(*SAVE) != sizeof(*LIVE));           \
>> +            if (op == CR_CPT)                                       \
>> +                    memcpy(SAVE, LIVE, count * sizeof(*SAVE));      \
>> +            else                                                    \
>> +                    memcpy(LIVE, SAVE, count * sizeof(*SAVE));      \
>> +    } while (__must_be_array(SAVE) && __must_be_array(LIVE) && 0)

SH> It doesn't really matter I guess, but I'd prefer to see:

SH> #define CR_COPY_ARRAY(op, SAVE, LIVE, count)                                
\
SH>     do {                                                            \
SH>             __must_be_array(SAVE);                                  \
SH>             __must_be_array(LIVE);                                  \
SH>             BUILD_BUG_ON(sizeof(*SAVE) != sizeof(*LIVE));           \
SH>             if (op == CR_CPT)                                       \
SH>                     memcpy(SAVE, LIVE, count * sizeof(*SAVE));      \
SH>             else                                                    \
SH>                     memcpy(LIVE, SAVE, count * sizeof(*SAVE));      \
SH>     } while (0)

SH> Putting the __must_be_array()s inside the condition seems really weird.

I thought I explained this somewhere.  You'll get a compile warning if
you make __must_be_array() a statement without an lvalue.  If you try
to stuff the result into a variable that you don't use, you'll get a
warning about an unused variable.  I did what I did because it seemed
like a sane way to sidestep both of those issues.

Maybe a comment is warranted? :)

-- 
Dan Smith
IBM Linux Technology Center
email: [email protected]

_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to