>>> On 06.09.15 at 08:32, <feng...@intel.com> wrote: >> From: Wu, Feng >> Sent: Sunday, September 06, 2015 2:07 PM >> If that is the case, what about the changes below? >> >> #define cmpxchg16b(ptr,o,n) >> \ >> ASSERT((unsigned long)ptr & 0xF == 0); >> \ >> ASSERT(sizeof(*o) == sizeof(__uint128_t)) >> \ >> ASSERT(sizeof(*n) == sizeof(__uint128_t)) >> \ >> __cmpxchg16b((ptr), (void *)(o), (void *)(n)) > > Seems there is a build error with this change, we cannot > add stuff before __cmpxchg() since it needs return some > value to the caller. Any suggestion here?
You of course first need to make this proper C (missing semicolons) and convert it to a construct that is just a single statement (if necessary using gcc's compound expression extension). Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel