Skip to content
  • Linus Torvalds's avatar
    Fix build errors due to CONFIG_BRANCH_TRACER=y · aeeae868
    Linus Torvalds authored
    
    
    The code that enables branch tracing for all (non-constant) branches
    plays games with the preprocessor and #define's the C 'if ()' construct
    to do tracing.
    
    That's all fine, but it fails for some unusual but valid C code that is
    sometimes used in macros, notably by the intel-iommu code:
    
    	if (i=drhd->iommu, drhd->ignored) ..
    
    because now the preprocessor complains about multiple arguments to the
    'if' macro.
    
    So make the macro expansion of this particularly horrid trick use
    varargs, and handle the case of comma-expressions in if-statements.  Use
    another macro to do it cleanly in just one place.
    
    This replaces a patch by David (and acked by Steven) that did this all
    inside that one already-too-horrid macro.
    
    Tested-by: default avatarIngo Molnar <mingo@elte.hu>
    Cc: David Woodhouse <dwmw2@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    aeeae868