[rcu:dev.2016.05.17a 42/45] include/linux/irqflags.h:79:3: error: implicit declaration of function 'arch_irqs_disabled_flags'

From: kbuild test robot
Date: Fri May 20 2016 - 07:36:14 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2016.05.17a
head: ac3c30e8911d244986e3bb2c56f7d3ca84405d98
commit: 31862f2d44ddc7144a12656cf2a9ec60c5d200df [42/45] rcu: Make call_rcu_tasks() tolerate first call with irqs disabled
config: um-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
git checkout 31862f2d44ddc7144a12656cf2a9ec60c5d200df
# save the attached .config to linux build tree
make ARCH=um

Note: the rcu/dev.2016.05.17a HEAD ac3c30e8911d244986e3bb2c56f7d3ca84405d98 builds fine.
It only hurts bisectibility.

All errors (new ones prefixed by >>):

kernel/rcu/update.c:828:13: sparse: incorrect type in argument 1 (different modifiers)
kernel/rcu/update.c:828:13: expected int ( *threadfn )( ... )
kernel/rcu/update.c:828:13: got int ( static [toplevel] [noreturn] *<noident> )( ... )
kernel/rcu/update.c:572:28: sparse: undefined identifier 'arch_irqs_disabled_flags'
In file included from include/linux/spinlock.h:53:0,
from kernel/rcu/update.c:36:
kernel/rcu/update.c: In function 'call_rcu_tasks':
>> include/linux/irqflags.h:79:3: error: implicit declaration of function 'arch_irqs_disabled_flags' [-Werror=implicit-function-declaration]
arch_irqs_disabled_flags(flags); \
^
include/linux/irqflags.h:149:36: note: in expansion of macro 'raw_irqs_disabled_flags'
#define irqs_disabled_flags(flags) raw_irqs_disabled_flags(flags)
^~~~~~~~~~~~~~~~~~~~~~~
kernel/rcu/update.c:572:21: note: in expansion of macro 'irqs_disabled_flags'
(!havetask && !irqs_disabled_flags(flags))) {
^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +/arch_irqs_disabled_flags +79 include/linux/irqflags.h

df9ee292 David Howells 2010-10-07 73 typecheck(unsigned long, flags); \
df9ee292 David Howells 2010-10-07 74 flags = arch_local_save_flags(); \
df9ee292 David Howells 2010-10-07 75 } while (0)
df9ee292 David Howells 2010-10-07 76 #define raw_irqs_disabled_flags(flags) \
df9ee292 David Howells 2010-10-07 77 ({ \
df9ee292 David Howells 2010-10-07 78 typecheck(unsigned long, flags); \
df9ee292 David Howells 2010-10-07 @79 arch_irqs_disabled_flags(flags); \
df9ee292 David Howells 2010-10-07 80 })
df9ee292 David Howells 2010-10-07 81 #define raw_irqs_disabled() (arch_irqs_disabled())
df9ee292 David Howells 2010-10-07 82 #define raw_safe_halt() arch_safe_halt()

:::::: The code at line 79 was first introduced by commit
:::::: df9ee29270c11dba7d0fe0b83ce47a4d8e8d2101 Fix IRQ flag handling naming

:::::: TO: David Howells <dhowells@xxxxxxxxxx>
:::::: CC: David Howells <dhowells@xxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: Binary data