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 <[email protected]> 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 <[email protected]> :::::: CC: Linus Torvalds <[email protected]> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip

