Latest working kernel version: 2.6.28.8 Earliest failing kernel version: 2.6.29 Distribution: any Hardware Environment: any Software Environment: Problem Description: enabling TRACE_BRANCH_PROFILING in .config triggers so much sparse warnings that the sparse output becomes unusable. Steps to reproduce: * enable CONFIG_TRACE_BRANCH_PROFILING (I enabled this through make allyesconfig) * run make C=2 Result: a huge number of sparse warnings, e.g. ... include/linux/cpumask.h:547:2: warning: symbol '______r' shadows an earlier one include/linux/cpumask.h:547:2: originally declared here ... /tmp/bva/linux-2.6.29/arch/x86/include/asm/paravirt.h:902:2: warning: symbol '______r' shadows an earlier one /tmp/bva/linux-2.6.29/arch/x86/include/asm/paravirt.h:902:2: originally declared here /tmp/bva/linux-2.6.29/arch/x86/include/asm/paravirt.h:902:2: warning: too many warnings ... Proposed fix: in include/compiler.h, change #if defined(CONFIG_TRACE_BRANCH_PROFILING) && !defined(DISABLE_BRANCH_PROFILING) into #if defined(CONFIG_TRACE_BRANCH_PROFILING) && !defined(DISABLE_BRANCH_PROFILING) && ! defined(__CHECKER__)
Created attachment 20657 [details] Disable branch profiling for sparse.
Created attachment 20658 [details] Disable branch profiling for sparse.
See also http://lkml.org/lkml/2009/4/5/120.
Fixed by commit d9ad8bc0ca823705413f75b50c442a88cc518b35 .