[tip:WIP.x86/cpu 8/17] include/linux/irqflags.h:122:3: note: in expansion of macro 'if'

From: kbuild test robot
Date: Fri Jun 21 2019 - 14:53:12 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.x86/cpu
head: 707e6befd43ba8d754485d8d02ed4f49ec8ec667
commit: 41cf6ccef21080168970226f657daff26ecaf3e1 [8/17] x86/process/64: Use FSGSBASE instructions on thread copy and ptrace
config: x86_64-randconfig-x016-201924 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
git checkout 41cf6ccef21080168970226f657daff26ecaf3e1
# save the attached .config to linux build tree
make ARCH=x86_64

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

In file included from include/linux/kernel.h:14:0,
from include/linux/list.h:9,
from include/linux/kobject.h:19,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
arch/x86//kernel/process_64.c: In function 'save_fsgs':
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/irqflags.h:83:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:115:3: note: in expansion of macro 'raw_local_irq_save'
raw_local_irq_save(flags); \
^~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:256:3: note: in expansion of macro 'local_irq_save'
local_irq_save(&flags);
^~~~~~~~~~~~~~
In file included from arch/x86/include/asm/processor.h:33:0,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
include/linux/irqflags.h:84:9: error: lvalue required as left operand of assignment
flags = arch_local_irq_save(); \
^
include/linux/irqflags.h:115:3: note: in expansion of macro 'raw_local_irq_save'
raw_local_irq_save(flags); \
^~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:256:3: note: in expansion of macro 'local_irq_save'
local_irq_save(&flags);
^~~~~~~~~~~~~~
In file included from include/linux/ioport.h:13:0,
from include/linux/device.h:15,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:98:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_irqs_disabled_flags' makes integer from pointer without a cast [-Wint-conversion]
local_irq_restore(&flags);
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from include/linux/irqflags.h:16:0,
from arch/x86/include/asm/processor.h:33,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
arch/x86/include/asm/irqflags.h:162:19: note: expected 'long unsigned int' but argument is of type 'long unsigned int *'
static inline int arch_irqs_disabled_flags(unsigned long flags)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/ioport.h:13:0,
from include/linux/device.h:15,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:98:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_irqs_disabled_flags' makes integer from pointer without a cast [-Wint-conversion]
local_irq_restore(&flags);
^
include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from include/linux/irqflags.h:16:0,
from arch/x86/include/asm/processor.h:33,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
arch/x86/include/asm/irqflags.h:162:19: note: expected 'long unsigned int' but argument is of type 'long unsigned int *'
static inline int arch_irqs_disabled_flags(unsigned long flags)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/ioport.h:13:0,
from include/linux/device.h:15,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value'
(cond) ? \
^~~~
include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var'
#define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
^~~~~~~~~~~~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:98:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_irqs_disabled_flags' makes integer from pointer without a cast [-Wint-conversion]
local_irq_restore(&flags);
^
include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value'
(cond) ? \
^~~~
include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var'
#define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
^~~~~~~~~~~~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from include/linux/irqflags.h:16:0,
from arch/x86/include/asm/processor.h:33,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
arch/x86/include/asm/irqflags.h:162:19: note: expected 'long unsigned int' but argument is of type 'long unsigned int *'
static inline int arch_irqs_disabled_flags(unsigned long flags)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/kernel.h:14:0,
from include/linux/list.h:9,
from include/linux/kobject.h:19,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/irqflags.h:88:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:123:4: note: in expansion of macro 'raw_local_irq_restore'
raw_local_irq_restore(flags); \
^~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/processor.h:33:0,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
arch/x86//kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_local_irq_restore' makes integer from pointer without a cast [-Wint-conversion]
local_irq_restore(&flags);
^
include/linux/irqflags.h:89:26: note: in definition of macro 'raw_local_irq_restore'
arch_local_irq_restore(flags); \
^~~~~
arch/x86//kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from include/linux/irqflags.h:16:0,
from arch/x86/include/asm/processor.h:33,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
arch/x86/include/asm/irqflags.h:82:28: note: expected 'long unsigned int' but argument is of type 'long unsigned int *'
static inline notrace void arch_local_irq_restore(unsigned long flags)
^~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/kernel.h:14:0,
from include/linux/list.h:9,
from include/linux/kobject.h:19,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/irqflags.h:88:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:127:4: note: in expansion of macro 'raw_local_irq_restore'
raw_local_irq_restore(flags); \
^~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/processor.h:33:0,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86//kernel/process_64.c:18:
arch/x86//kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_local_irq_restore' makes integer from pointer without a cast [-Wint-conversion]
--
In file included from include/linux/kernel.h:14:0,
from include/linux/list.h:9,
from include/linux/kobject.h:19,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
arch/x86/kernel/process_64.c: In function 'save_fsgs':
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/irqflags.h:83:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:115:3: note: in expansion of macro 'raw_local_irq_save'
raw_local_irq_save(flags); \
^~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:256:3: note: in expansion of macro 'local_irq_save'
local_irq_save(&flags);
^~~~~~~~~~~~~~
In file included from arch/x86/include/asm/processor.h:33:0,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
include/linux/irqflags.h:84:9: error: lvalue required as left operand of assignment
flags = arch_local_irq_save(); \
^
include/linux/irqflags.h:115:3: note: in expansion of macro 'raw_local_irq_save'
raw_local_irq_save(flags); \
^~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:256:3: note: in expansion of macro 'local_irq_save'
local_irq_save(&flags);
^~~~~~~~~~~~~~
In file included from include/linux/ioport.h:13:0,
from include/linux/device.h:15,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:98:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_irqs_disabled_flags' makes integer from pointer without a cast [-Wint-conversion]
local_irq_restore(&flags);
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from include/linux/irqflags.h:16:0,
from arch/x86/include/asm/processor.h:33,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
arch/x86/include/asm/irqflags.h:162:19: note: expected 'long unsigned int' but argument is of type 'long unsigned int *'
static inline int arch_irqs_disabled_flags(unsigned long flags)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/ioport.h:13:0,
from include/linux/device.h:15,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:98:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_irqs_disabled_flags' makes integer from pointer without a cast [-Wint-conversion]
local_irq_restore(&flags);
^
include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
^~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from include/linux/irqflags.h:16:0,
from arch/x86/include/asm/processor.h:33,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
arch/x86/include/asm/irqflags.h:162:19: note: expected 'long unsigned int' but argument is of type 'long unsigned int *'
static inline int arch_irqs_disabled_flags(unsigned long flags)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/ioport.h:13:0,
from include/linux/device.h:15,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value'
(cond) ? \
^~~~
include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var'
#define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
^~~~~~~~~~~~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:98:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_irqs_disabled_flags' makes integer from pointer without a cast [-Wint-conversion]
local_irq_restore(&flags);
^
include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value'
(cond) ? \
^~~~
include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var'
#define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
^~~~~~~~~~~~~~
>> include/linux/irqflags.h:122:3: note: in expansion of macro 'if'
if (raw_irqs_disabled_flags(flags)) { \
^~
include/linux/irqflags.h:122:7: note: in expansion of macro 'raw_irqs_disabled_flags'
if (raw_irqs_disabled_flags(flags)) { \
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from include/linux/irqflags.h:16:0,
from arch/x86/include/asm/processor.h:33,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
arch/x86/include/asm/irqflags.h:162:19: note: expected 'long unsigned int' but argument is of type 'long unsigned int *'
static inline int arch_irqs_disabled_flags(unsigned long flags)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/kernel.h:14:0,
from include/linux/list.h:9,
from include/linux/kobject.h:19,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/irqflags.h:88:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:123:4: note: in expansion of macro 'raw_local_irq_restore'
raw_local_irq_restore(flags); \
^~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/processor.h:33:0,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
arch/x86/kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_local_irq_restore' makes integer from pointer without a cast [-Wint-conversion]
local_irq_restore(&flags);
^
include/linux/irqflags.h:89:26: note: in definition of macro 'raw_local_irq_restore'
arch_local_irq_restore(flags); \
^~~~~
arch/x86/kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from include/linux/irqflags.h:16:0,
from arch/x86/include/asm/processor.h:33,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
arch/x86/include/asm/irqflags.h:82:28: note: expected 'long unsigned int' but argument is of type 'long unsigned int *'
static inline notrace void arch_local_irq_restore(unsigned long flags)
^~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/kernel.h:14:0,
from include/linux/list.h:9,
from include/linux/kobject.h:19,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
(void)(&__dummy == &__dummy2); \
^
include/linux/irqflags.h:88:3: note: in expansion of macro 'typecheck'
typecheck(unsigned long, flags); \
^~~~~~~~~
include/linux/irqflags.h:127:4: note: in expansion of macro 'raw_local_irq_restore'
raw_local_irq_restore(flags); \
^~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/process_64.c:258:3: note: in expansion of macro 'local_irq_restore'
local_irq_restore(&flags);
^~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/processor.h:33:0,
from include/linux/mutex.h:19,
from include/linux/kernfs.h:12,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/device.h:16,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/x86/kernel/process_64.c:18:
arch/x86/kernel/process_64.c:258:21: warning: passing argument 1 of 'arch_local_irq_restore' makes integer from pointer without a cast [-Wint-conversion]

vim +/if +122 include/linux/irqflags.h

de30a2b35 Ingo Molnar 2006-07-03 103
df9ee2927 David Howells 2010-10-07 104 /*
df9ee2927 David Howells 2010-10-07 105 * The local_irq_*() APIs are equal to the raw_local_irq*()
df9ee2927 David Howells 2010-10-07 106 * if !TRACE_IRQFLAGS.
df9ee2927 David Howells 2010-10-07 107 */
db2dcb4f9 Jan Beulich 2015-01-20 108 #ifdef CONFIG_TRACE_IRQFLAGS
de30a2b35 Ingo Molnar 2006-07-03 109 #define local_irq_enable() \
de30a2b35 Ingo Molnar 2006-07-03 110 do { trace_hardirqs_on(); raw_local_irq_enable(); } while (0)
de30a2b35 Ingo Molnar 2006-07-03 111 #define local_irq_disable() \
de30a2b35 Ingo Molnar 2006-07-03 112 do { raw_local_irq_disable(); trace_hardirqs_off(); } while (0)
de30a2b35 Ingo Molnar 2006-07-03 113 #define local_irq_save(flags) \
3f307891c Steven Rostedt 2008-07-25 114 do { \
3f307891c Steven Rostedt 2008-07-25 115 raw_local_irq_save(flags); \
3f307891c Steven Rostedt 2008-07-25 116 trace_hardirqs_off(); \
3f307891c Steven Rostedt 2008-07-25 117 } while (0)
3f307891c Steven Rostedt 2008-07-25 118
de30a2b35 Ingo Molnar 2006-07-03 119
de30a2b35 Ingo Molnar 2006-07-03 120 #define local_irq_restore(flags) \
de30a2b35 Ingo Molnar 2006-07-03 121 do { \
de30a2b35 Ingo Molnar 2006-07-03 @122 if (raw_irqs_disabled_flags(flags)) { \
de30a2b35 Ingo Molnar 2006-07-03 123 raw_local_irq_restore(flags); \
de30a2b35 Ingo Molnar 2006-07-03 124 trace_hardirqs_off(); \
de30a2b35 Ingo Molnar 2006-07-03 125 } else { \
de30a2b35 Ingo Molnar 2006-07-03 126 trace_hardirqs_on(); \
de30a2b35 Ingo Molnar 2006-07-03 127 raw_local_irq_restore(flags); \
de30a2b35 Ingo Molnar 2006-07-03 128 } \
de30a2b35 Ingo Molnar 2006-07-03 129 } while (0)
de30a2b35 Ingo Molnar 2006-07-03 130

:::::: The code at line 122 was first introduced by commit
:::::: de30a2b355ea85350ca2f58f3b9bf4e5bc007986 [PATCH] lockdep: irqtrace subsystem, core

:::::: TO: Ingo Molnar <mingo@xxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip