lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <201705050614.wDo7a3TG%fengguang.wu@intel.com>
Date:   Fri, 5 May 2017 06:57:21 +0800
From:   kbuild test robot <fengguang.wu@...el.com>
To:     "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org
Subject: [rcu:rcu/dev 87/90] include/linux/irqflags.h:59:34: error: implicit
 declaration of function 'arch_local_irq_disable'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/dev
head:   894c3990aadbe57e0e87f9d18307fa2a4e27af7f
commit: 7683511c453ce2bb1b7d30fde281ecdacca04f6b [87/90] rcu: Move ktime needs to rcutiny.h and remove ktime.h from rcupdate.h
config: sparc64-allnoconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 7683511c453ce2bb1b7d30fde281ecdacca04f6b
        # save the attached .config to linux build tree
        make.cross ARCH=sparc64 

All error/warnings (new ones prefixed by >>):

   In file included from arch/sparc/include/asm/irqflags.h:4:0,
                    from include/linux/irqflags.h:15,
                    from include/linux/rcupdate.h:36,
                    from include/linux/init_task.h:4,
                    from init/init_task.c:1:
>> arch/sparc/include/asm/irqflags_64.h:17:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unsigned'
    static inline notrace unsigned long arch_local_save_flags(void)
                          ^~~~~~~~
>> arch/sparc/include/asm/irqflags_64.h:29:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
    static inline notrace void arch_local_irq_restore(unsigned long flags)
                          ^~~~
   arch/sparc/include/asm/irqflags_64.h:39:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
    static inline notrace void arch_local_irq_disable(void)
                          ^~~~
   arch/sparc/include/asm/irqflags_64.h:49:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
    static inline notrace void arch_local_irq_enable(void)
                          ^~~~
>> arch/sparc/include/asm/irqflags_64.h:59:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'
    static inline notrace int arch_irqs_disabled_flags(unsigned long flags)
                          ^~~
   arch/sparc/include/asm/irqflags_64.h:64:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'
    static inline notrace int arch_irqs_disabled(void)
                          ^~~
   arch/sparc/include/asm/irqflags_64.h:69:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unsigned'
    static inline notrace unsigned long arch_local_irq_save(void)
                          ^~~~~~~~
   In file included from include/linux/rcupdate.h:36:0,
                    from include/linux/init_task.h:4,
                    from init/init_task.c:1:
   include/linux/spinlock.h: In function 'spin_lock_irq':
>> include/linux/irqflags.h:59:34: error: implicit declaration of function 'arch_local_irq_disable' [-Werror=implicit-function-declaration]
    #define raw_local_irq_disable()  arch_local_irq_disable()
                                     ^
>> include/linux/irqflags.h:121:34: note: in expansion of macro 'raw_local_irq_disable'
    #define local_irq_disable() do { raw_local_irq_disable(); } while (0)
                                     ^~~~~~~~~~~~~~~~~~~~~
>> include/linux/spinlock_api_up.h:37:8: note: in expansion of macro 'local_irq_disable'
      do { local_irq_disable(); __LOCK(lock); } while (0)
           ^~~~~~~~~~~~~~~~~
>> include/linux/spinlock_api_up.h:65:35: note: in expansion of macro '__LOCK_IRQ'
    #define _raw_spin_lock_irq(lock)  __LOCK_IRQ(lock)
                                      ^~~~~~~~~~
>> include/linux/spinlock.h:235:34: note: in expansion of macro '_raw_spin_lock_irq'
    #define raw_spin_lock_irq(lock)  _raw_spin_lock_irq(lock)
                                     ^~~~~~~~~~~~~~~~~~
>> include/linux/spinlock.h:324:2: note: in expansion of macro 'raw_spin_lock_irq'
     raw_spin_lock_irq(&lock->rlock);
     ^~~~~~~~~~~~~~~~~
   include/linux/spinlock.h: In function 'spin_unlock_irq':
>> include/linux/irqflags.h:60:33: error: implicit declaration of function 'arch_local_irq_enable' [-Werror=implicit-function-declaration]
    #define raw_local_irq_enable()  arch_local_irq_enable()
                                    ^
>> include/linux/irqflags.h:120:33: note: in expansion of macro 'raw_local_irq_enable'
    #define local_irq_enable() do { raw_local_irq_enable(); } while (0)
                                    ^~~~~~~~~~~~~~~~~~~~
>> include/linux/spinlock_api_up.h:53:8: note: in expansion of macro 'local_irq_enable'
      do { local_irq_enable(); __UNLOCK(lock); } while (0)
           ^~~~~~~~~~~~~~~~
>> include/linux/spinlock_api_up.h:81:37: note: in expansion of macro '__UNLOCK_IRQ'
    #define _raw_spin_unlock_irq(lock)  __UNLOCK_IRQ(lock)
                                        ^~~~~~~~~~~~
>> include/linux/spinlock.h:238:35: note: in expansion of macro '_raw_spin_unlock_irq'
    #define raw_spin_unlock_irq(lock) _raw_spin_unlock_irq(lock)
                                      ^~~~~~~~~~~~~~~~~~~~
>> include/linux/spinlock.h:349:2: note: in expansion of macro 'raw_spin_unlock_irq'
     raw_spin_unlock_irq(&lock->rlock);
     ^~~~~~~~~~~~~~~~~~~
   include/linux/spinlock.h: In function 'spin_unlock_irqrestore':
>> include/linux/irqflags.h:69:3: error: implicit declaration of function 'arch_local_irq_restore' [-Werror=implicit-function-declaration]
      arch_local_irq_restore(flags);  \
      ^
   include/linux/irqflags.h:126:39: note: in expansion of macro 'raw_local_irq_restore'
    #define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
                                          ^~~~~~~~~~~~~~~~~~~~~
   include/linux/spinlock_api_up.h:56:8: note: in expansion of macro 'local_irq_restore'
      do { local_irq_restore(flags); __UNLOCK(lock); } while (0)
           ^~~~~~~~~~~~~~~~~
   include/linux/spinlock_api_up.h:85:6: note: in expansion of macro '__UNLOCK_IRQRESTORE'
         __UNLOCK_IRQRESTORE(lock, flags)
         ^~~~~~~~~~~~~~~~~~~
   include/linux/spinlock.h:243:3: note: in expansion of macro '_raw_spin_unlock_irqrestore'
      _raw_spin_unlock_irqrestore(lock, flags); \
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/spinlock.h:354:2: note: in expansion of macro 'raw_spin_unlock_irqrestore'
     raw_spin_unlock_irqrestore(&lock->rlock, flags);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/asm-generic/cmpxchg-local.h: In function '__cmpxchg_local_generic':
>> include/linux/irqflags.h:64:11: error: implicit declaration of function 'arch_local_irq_save' [-Werror=implicit-function-declaration]
      flags = arch_local_irq_save();  \
              ^
>> include/asm-generic/cmpxchg-local.h:25:2: note: in expansion of macro 'raw_local_irq_save'
     raw_local_irq_save(flags);
     ^~~~~~~~~~~~~~~~~~
   In file included from arch/sparc/include/asm/bug.h:20:0,
                    from include/linux/bug.h:4,
                    from include/linux/thread_info.h:11,
                    from include/asm-generic/preempt.h:4,
                    from ./arch/sparc/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:80,
                    from include/linux/rcupdate.h:37,
                    from include/linux/init_task.h:4,
                    from init/init_task.c:1:
   include/linux/dma-mapping.h: In function 'dma_free_attrs':
>> include/linux/irqflags.h:74:11: error: implicit declaration of function 'arch_local_save_flags' [-Werror=implicit-function-declaration]
      flags = arch_local_save_flags(); \
              ^
   include/asm-generic/bug.h:159:25: note: in definition of macro 'WARN_ON'
     int __ret_warn_on = !!(condition);    \
                            ^~~~~~~~~
>> include/linux/irqflags.h:142:3: note: in expansion of macro 'raw_local_save_flags'
      raw_local_save_flags(_flags);  \
      ^~~~~~~~~~~~~~~~~~~~

vim +/arch_local_irq_disable +59 include/linux/irqflags.h

81d68a96a Steven Rostedt 2008-05-12   53  # define start_critical_timings() do { } while (0)
81d68a96a Steven Rostedt 2008-05-12   54  #endif
81d68a96a Steven Rostedt 2008-05-12   55  
df9ee2927 David Howells  2010-10-07   56  /*
df9ee2927 David Howells  2010-10-07   57   * Wrap the arch provided IRQ routines to provide appropriate checks.
df9ee2927 David Howells  2010-10-07   58   */
df9ee2927 David Howells  2010-10-07  @59  #define raw_local_irq_disable()		arch_local_irq_disable()
df9ee2927 David Howells  2010-10-07  @60  #define raw_local_irq_enable()		arch_local_irq_enable()
df9ee2927 David Howells  2010-10-07   61  #define raw_local_irq_save(flags)			\
df9ee2927 David Howells  2010-10-07   62  	do {						\
df9ee2927 David Howells  2010-10-07   63  		typecheck(unsigned long, flags);	\
df9ee2927 David Howells  2010-10-07  @64  		flags = arch_local_irq_save();		\
df9ee2927 David Howells  2010-10-07   65  	} while (0)
df9ee2927 David Howells  2010-10-07   66  #define raw_local_irq_restore(flags)			\
df9ee2927 David Howells  2010-10-07   67  	do {						\
df9ee2927 David Howells  2010-10-07   68  		typecheck(unsigned long, flags);	\
df9ee2927 David Howells  2010-10-07  @69  		arch_local_irq_restore(flags);		\
df9ee2927 David Howells  2010-10-07   70  	} while (0)
df9ee2927 David Howells  2010-10-07   71  #define raw_local_save_flags(flags)			\
df9ee2927 David Howells  2010-10-07   72  	do {						\
df9ee2927 David Howells  2010-10-07   73  		typecheck(unsigned long, flags);	\
df9ee2927 David Howells  2010-10-07  @74  		flags = arch_local_save_flags();	\
df9ee2927 David Howells  2010-10-07   75  	} while (0)
df9ee2927 David Howells  2010-10-07   76  #define raw_irqs_disabled_flags(flags)			\
df9ee2927 David Howells  2010-10-07   77  	({						\
df9ee2927 David Howells  2010-10-07   78  		typecheck(unsigned long, flags);	\
df9ee2927 David Howells  2010-10-07  @79  		arch_irqs_disabled_flags(flags);	\
df9ee2927 David Howells  2010-10-07   80  	})
df9ee2927 David Howells  2010-10-07   81  #define raw_irqs_disabled()		(arch_irqs_disabled())
df9ee2927 David Howells  2010-10-07   82  #define raw_safe_halt()			arch_safe_halt()
de30a2b35 Ingo Molnar    2006-07-03   83  
df9ee2927 David Howells  2010-10-07   84  /*
df9ee2927 David Howells  2010-10-07   85   * The local_irq_*() APIs are equal to the raw_local_irq*()
df9ee2927 David Howells  2010-10-07   86   * if !TRACE_IRQFLAGS.
df9ee2927 David Howells  2010-10-07   87   */
db2dcb4f9 Jan Beulich    2015-01-20   88  #ifdef CONFIG_TRACE_IRQFLAGS
de30a2b35 Ingo Molnar    2006-07-03   89  #define local_irq_enable() \
de30a2b35 Ingo Molnar    2006-07-03   90  	do { trace_hardirqs_on(); raw_local_irq_enable(); } while (0)
de30a2b35 Ingo Molnar    2006-07-03   91  #define local_irq_disable() \
de30a2b35 Ingo Molnar    2006-07-03   92  	do { raw_local_irq_disable(); trace_hardirqs_off(); } while (0)
de30a2b35 Ingo Molnar    2006-07-03   93  #define local_irq_save(flags)				\
3f307891c Steven Rostedt 2008-07-25   94  	do {						\
3f307891c Steven Rostedt 2008-07-25   95  		raw_local_irq_save(flags);		\
3f307891c Steven Rostedt 2008-07-25   96  		trace_hardirqs_off();			\
3f307891c Steven Rostedt 2008-07-25   97  	} while (0)
3f307891c Steven Rostedt 2008-07-25   98  
de30a2b35 Ingo Molnar    2006-07-03   99  
de30a2b35 Ingo Molnar    2006-07-03  100  #define local_irq_restore(flags)			\
de30a2b35 Ingo Molnar    2006-07-03  101  	do {						\
de30a2b35 Ingo Molnar    2006-07-03  102  		if (raw_irqs_disabled_flags(flags)) {	\
de30a2b35 Ingo Molnar    2006-07-03  103  			raw_local_irq_restore(flags);	\
de30a2b35 Ingo Molnar    2006-07-03  104  			trace_hardirqs_off();		\
de30a2b35 Ingo Molnar    2006-07-03  105  		} else {				\
de30a2b35 Ingo Molnar    2006-07-03  106  			trace_hardirqs_on();		\
de30a2b35 Ingo Molnar    2006-07-03  107  			raw_local_irq_restore(flags);	\
de30a2b35 Ingo Molnar    2006-07-03  108  		}					\
de30a2b35 Ingo Molnar    2006-07-03  109  	} while (0)
de30a2b35 Ingo Molnar    2006-07-03  110  
df9ee2927 David Howells  2010-10-07  111  #define safe_halt()				\
df9ee2927 David Howells  2010-10-07  112  	do {					\
df9ee2927 David Howells  2010-10-07  113  		trace_hardirqs_on();		\
df9ee2927 David Howells  2010-10-07  114  		raw_safe_halt();		\
df9ee2927 David Howells  2010-10-07  115  	} while (0)
df9ee2927 David Howells  2010-10-07  116  
df9ee2927 David Howells  2010-10-07  117  
db2dcb4f9 Jan Beulich    2015-01-20  118  #else /* !CONFIG_TRACE_IRQFLAGS */
df9ee2927 David Howells  2010-10-07  119  
df9ee2927 David Howells  2010-10-07 @120  #define local_irq_enable()	do { raw_local_irq_enable(); } while (0)
df9ee2927 David Howells  2010-10-07 @121  #define local_irq_disable()	do { raw_local_irq_disable(); } while (0)
df9ee2927 David Howells  2010-10-07  122  #define local_irq_save(flags)					\
df9ee2927 David Howells  2010-10-07  123  	do {							\
df9ee2927 David Howells  2010-10-07  124  		raw_local_irq_save(flags);			\
df9ee2927 David Howells  2010-10-07  125  	} while (0)
df9ee2927 David Howells  2010-10-07  126  #define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
df9ee2927 David Howells  2010-10-07  127  #define safe_halt()		do { raw_safe_halt(); } while (0)
df9ee2927 David Howells  2010-10-07  128  
db2dcb4f9 Jan Beulich    2015-01-20  129  #endif /* CONFIG_TRACE_IRQFLAGS */
db2dcb4f9 Jan Beulich    2015-01-20  130  
db2dcb4f9 Jan Beulich    2015-01-20  131  #define local_save_flags(flags)	raw_local_save_flags(flags)
db2dcb4f9 Jan Beulich    2015-01-20  132  
db2dcb4f9 Jan Beulich    2015-01-20  133  /*
db2dcb4f9 Jan Beulich    2015-01-20  134   * Some architectures don't define arch_irqs_disabled(), so even if either
db2dcb4f9 Jan Beulich    2015-01-20  135   * definition would be fine we need to use different ones for the time being
db2dcb4f9 Jan Beulich    2015-01-20  136   * to avoid build issues.
db2dcb4f9 Jan Beulich    2015-01-20  137   */
db2dcb4f9 Jan Beulich    2015-01-20  138  #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
db2dcb4f9 Jan Beulich    2015-01-20  139  #define irqs_disabled()					\
db2dcb4f9 Jan Beulich    2015-01-20  140  	({						\
db2dcb4f9 Jan Beulich    2015-01-20  141  		unsigned long _flags;			\
db2dcb4f9 Jan Beulich    2015-01-20 @142  		raw_local_save_flags(_flags);		\
db2dcb4f9 Jan Beulich    2015-01-20 @143  		raw_irqs_disabled_flags(_flags);	\
db2dcb4f9 Jan Beulich    2015-01-20  144  	})
db2dcb4f9 Jan Beulich    2015-01-20  145  #else /* !CONFIG_TRACE_IRQFLAGS_SUPPORT */
db2dcb4f9 Jan Beulich    2015-01-20  146  #define irqs_disabled()	raw_irqs_disabled()

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

:::::: TO: David Howells <dhowells@...hat.com>
:::::: CC: David Howells <dhowells@...hat.com>

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

Download attachment ".config.gz" of type "application/gzip" (5211 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ