===================================================================
@@ -191,13 +191,13 @@
{
actual_oldval = *ptr;
- if (oldval != actual_oldval)
+ if (__builtin_expect (oldval != actual_oldval, 0))
return actual_oldval;
fail = __kernel_cmpxchg (actual_oldval, newval, ptr);
- if (!fail)
- return oldval;
+ if (__builtin_expect (!fail, 1))
+ return actual_oldval;
}
}
@@ -216,8 +216,9 @@
{ \
actual_oldval = *wordptr; \
\
- if (((actual_oldval & mask) >> shift) != (unsigned int) oldval) \
- return (actual_oldval & mask) >> shift; \
+ if (__builtin_expect (((actual_oldval & mask) >> shift) \
+ != (unsigned int) oldval, 0)) \
+ return (actual_oldval & mask) >> shift; \
\
actual_newval = (actual_oldval & ~mask) \
| (((unsigned int) newval << shift) & mask); \
@@ -225,8 +226,8 @@
fail = __kernel_cmpxchg (actual_oldval, actual_newval, \
wordptr); \
\
- if (!fail) \
- return oldval; \
+ if (__builtin_expect (!fail, 1)) \
+ return (actual_oldval & mask) >> shift; \
} \
}