From: Andrew Morton This caused ugly build errors when profile-likely-unlikely-macros.patch was applied. Move the `unlikely' inside the statement-expression. Cc: Herbert Xu Cc: Ingo Molnar Signed-off-by: Andrew Morton --- include/asm-generic/bug.h | 9 ++++----- include/asm-powerpc/bug.h | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff -puN include/asm-generic/bug.h~let-warn_on-warn_on_once-return-the-condition-fix-2 include/asm-generic/bug.h --- a/include/asm-generic/bug.h~let-warn_on-warn_on_once-return-the-condition-fix-2 +++ a/include/asm-generic/bug.h @@ -16,14 +16,14 @@ #endif #ifndef HAVE_ARCH_WARN_ON -#define WARN_ON(condition) unlikely({ \ +#define WARN_ON(condition) ({ \ typeof(condition) __ret_warn_on = (condition); \ if (unlikely(__ret_warn_on)) { \ printk("BUG: warning at %s:%d/%s()\n", __FILE__, \ __LINE__, __FUNCTION__); \ dump_stack(); \ } \ - __ret_warn_on; \ + unlikely(__ret_warn_on); \ }) #endif @@ -41,15 +41,14 @@ #endif #endif -#define WARN_ON_ONCE(condition) \ -unlikely({ \ +#define WARN_ON_ONCE(condition) ({ \ static int __warn_once = 1; \ typeof(condition) __ret_warn_once = (condition);\ \ if (likely(__warn_once)) \ if (WARN_ON(__ret_warn_once)) \ __warn_once = 0; \ - __ret_warn_once; \ + unlikely(__ret_warn_once); \ }) #ifdef CONFIG_SMP diff -puN include/asm-powerpc/bug.h~let-warn_on-warn_on_once-return-the-condition-fix-2 include/asm-powerpc/bug.h --- a/include/asm-powerpc/bug.h~let-warn_on-warn_on_once-return-the-condition-fix-2 +++ a/include/asm-powerpc/bug.h @@ -70,7 +70,7 @@ struct bug_entry *find_bug(unsigned long "i" (__FILE__), "i" (__FUNCTION__)); \ } while (0) -#define WARN_ON(x) unlikely({ \ +#define WARN_ON(x) ({ \ typeof(x) __ret_warn_on = (x); \ if (__builtin_constant_p(__ret_warn_on)) { \ if (__ret_warn_on) \ @@ -85,7 +85,7 @@ struct bug_entry *find_bug(unsigned long "i" (__LINE__ + BUG_WARNING_TRAP), \ "i" (__FILE__), "i" (__FUNCTION__)); \ } \ - __ret_warn_on; \ + unlikely(__ret_warn_on); \ }) #define HAVE_ARCH_BUG _