* [tglx-devel:x86/entry 34/46] arch/x86/include/asm/idtentry.h:63:29: error: storage class specified for parameter '__exc_invalid_op'
@ 2020-03-09 6:00 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-03-09 6:00 UTC (permalink / raw
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 28247 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git x86/entry
head: dd8fc8ae84a99ac6c71c380e85543f0623b6ac08
commit: 3d4016b4dd58b9030e3517c568b201ed55405ba5 [34/46] x86/entry: Convert Invalid Opcode exception to IDTENTRY
config: i386-randconfig-a001-20200308 (attached as .config)
compiler: gcc-7 (Debian 7.5.0-5) 7.5.0
reproduce:
git checkout 3d4016b4dd58b9030e3517c568b201ed55405ba5
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
In file included from arch/x86/include/asm/traps.h:9:0,
from arch/x86/kernel/traps.c:46:
arch/x86/kernel/traps.c: In function 'handle_invalid_op':
>> arch/x86/include/asm/idtentry.h:63:29: error: storage class specified for parameter '__exc_invalid_op'
static __always_inline void __##func(struct pt_regs *regs); \
^
>> arch/x86/kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
>> arch/x86/include/asm/idtentry.h:63:29: warning: parameter '__exc_invalid_op' declared 'inline'
static __always_inline void __##func(struct pt_regs *regs); \
^
>> arch/x86/kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
>> arch/x86/include/asm/idtentry.h:63:45: warning: '__gnu_inline__' attribute ignored [-Wattributes]
static __always_inline void __##func(struct pt_regs *regs); \
^
>> arch/x86/kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
>> arch/x86/include/asm/idtentry.h:63:29: error: 'no_instrument_function' attribute applies only to functions
static __always_inline void __##func(struct pt_regs *regs); \
^
>> arch/x86/kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
>> arch/x86/include/asm/idtentry.h:63:45: warning: '__always_inline__' attribute ignored [-Wattributes]
static __always_inline void __##func(struct pt_regs *regs); \
^
>> arch/x86/kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
>> include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
>> arch/x86/include/asm/idtentry.h:65:1: note: in expansion of macro '__visible'
__visible notrace void func(struct pt_regs *regs) \
^~~~~~~~~
>> arch/x86/kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/traps.h:9:0,
from arch/x86/kernel/traps.c:46:
>> arch/x86/include/asm/idtentry.h:71:22: error: expected declaration specifiers before ';' token
NOKPROBE_SYMBOL(func); \
^
>> arch/x86/kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
>> arch/x86/kernel/traps.c:304:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
>> include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
>> arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
>> arch/x86/kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86/kernel/traps.c:315:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_OLD_MF, SIGFPE, 0, NULL, "coprocessor segment overrun", coprocessor_segment_overrun)
^~~~~~~~
>> include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86/kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86/kernel/traps.c:316:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_TS, SIGSEGV, 0, NULL, "invalid TSS", invalid_TSS)
^~~~~~~~
include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86/kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86/kernel/traps.c:317:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_NP, SIGBUS, 0, NULL, "segment not present", segment_not_present)
^~~~~~~~
include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86/kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86/kernel/traps.c:318:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_SS, SIGBUS, 0, NULL, "stack segment", stack_segment)
^~~~~~~~
include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86/kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86/kernel/traps.c:319:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_AC, SIGBUS, BUS_ADRALN, NULL, "alignment check", alignment_check)
^~~~~~~~
In file included from arch/x86/include/asm/traps.h:9:0,
from arch/x86/kernel/traps.c:46:
arch/x86/include/asm/idtentry.h:63:29: error: storage class specified for parameter '__exc_bounds'
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86/kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
arch/x86/include/asm/idtentry.h:63:29: warning: parameter '__exc_bounds' declared 'inline'
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86/kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
arch/x86/include/asm/idtentry.h:63:45: warning: '__gnu_inline__' attribute ignored [-Wattributes]
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86/kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
arch/x86/include/asm/idtentry.h:63:29: error: 'no_instrument_function' attribute applies only to functions
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86/kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
arch/x86/include/asm/idtentry.h:63:45: warning: '__always_inline__' attribute ignored [-Wattributes]
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86/kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
arch/x86/include/asm/idtentry.h:65:1: note: in expansion of macro '__visible'
__visible notrace void func(struct pt_regs *regs) \
^~~~~~~~~
arch/x86/kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/traps.h:9:0,
from arch/x86/kernel/traps.c:46:
arch/x86/include/asm/idtentry.h:71:22: error: expected declaration specifiers before ';' token
NOKPROBE_SYMBOL(func); \
^
arch/x86/kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
arch/x86/kernel/traps.c:464:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
--
In file included from arch/x86/include/asm/traps.h:9:0,
from arch/x86//kernel/traps.c:46:
arch/x86//kernel/traps.c: In function 'handle_invalid_op':
>> arch/x86/include/asm/idtentry.h:63:29: error: storage class specified for parameter '__exc_invalid_op'
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
>> arch/x86/include/asm/idtentry.h:63:29: warning: parameter '__exc_invalid_op' declared 'inline'
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
>> arch/x86/include/asm/idtentry.h:63:45: warning: '__gnu_inline__' attribute ignored [-Wattributes]
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
>> arch/x86/include/asm/idtentry.h:63:29: error: 'no_instrument_function' attribute applies only to functions
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
>> arch/x86/include/asm/idtentry.h:63:45: warning: '__always_inline__' attribute ignored [-Wattributes]
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
>> include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
>> arch/x86/include/asm/idtentry.h:65:1: note: in expansion of macro '__visible'
__visible notrace void func(struct pt_regs *regs) \
^~~~~~~~~
arch/x86//kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/traps.h:9:0,
from arch/x86//kernel/traps.c:46:
>> arch/x86/include/asm/idtentry.h:71:22: error: expected declaration specifiers before ';' token
NOKPROBE_SYMBOL(func); \
^
arch/x86//kernel/traps.c:303:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_invalid_op)
^~~~~~~~~~~~~~~
arch/x86//kernel/traps.c:304:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
>> include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
>> arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86//kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86//kernel/traps.c:315:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_OLD_MF, SIGFPE, 0, NULL, "coprocessor segment overrun", coprocessor_segment_overrun)
^~~~~~~~
>> include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
>> arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86//kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86//kernel/traps.c:316:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_TS, SIGSEGV, 0, NULL, "invalid TSS", invalid_TSS)
^~~~~~~~
>> include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
>> arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86//kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86//kernel/traps.c:317:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_NP, SIGBUS, 0, NULL, "segment not present", segment_not_present)
^~~~~~~~
>> include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
>> arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86//kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86//kernel/traps.c:318:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_SS, SIGBUS, 0, NULL, "stack segment", stack_segment)
^~~~~~~~
>> include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
>> arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86//kernel/traps.c:310:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
^~~~~~~~~~~~~
arch/x86//kernel/traps.c:319:1: note: in expansion of macro 'DO_ERROR'
DO_ERROR(X86_TRAP_AC, SIGBUS, BUS_ADRALN, NULL, "alignment check", alignment_check)
^~~~~~~~
In file included from arch/x86/include/asm/traps.h:9:0,
from arch/x86//kernel/traps.c:46:
>> arch/x86/include/asm/idtentry.h:63:29: error: storage class specified for parameter '__exc_bounds'
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
>> arch/x86/include/asm/idtentry.h:63:29: warning: parameter '__exc_bounds' declared 'inline'
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
arch/x86/include/asm/idtentry.h:63:45: warning: '__gnu_inline__' attribute ignored [-Wattributes]
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
arch/x86/include/asm/idtentry.h:63:29: error: 'no_instrument_function' attribute applies only to functions
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
arch/x86/include/asm/idtentry.h:63:45: warning: '__always_inline__' attribute ignored [-Wattributes]
static __always_inline void __##func(struct pt_regs *regs); \
^
arch/x86//kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
arch/x86/include/asm/idtentry.h:65:1: note: in expansion of macro '__visible'
__visible notrace void func(struct pt_regs *regs) \
^~~~~~~~~
arch/x86//kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/traps.h:9:0,
from arch/x86//kernel/traps.c:46:
arch/x86/include/asm/idtentry.h:71:22: error: expected declaration specifiers before ';' token
NOKPROBE_SYMBOL(func); \
^
arch/x86//kernel/traps.c:463:1: note: in expansion of macro 'DEFINE_IDTENTRY'
DEFINE_IDTENTRY(exc_bounds)
^~~~~~~~~~~~~~~
arch/x86//kernel/traps.c:464:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
arch/x86//kernel/traps.c:477:1: warning: empty declaration
enum kernel_gp_hint {
^~~~
arch/x86//kernel/traps.c:490:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86//kernel/traps.c:521:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_general_protection(struct pt_regs *regs, long error_code)
^~~~~~~~~~~~~
arch/x86//kernel/traps.c:595:39: error: expected declaration specifiers before ';' token
NOKPROBE_SYMBOL(do_general_protection);
^
In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86//kernel/traps.c:597:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void notrace do_int3(struct pt_regs *regs, long error_code)
^~~~~~~~~~~~~
arch/x86//kernel/traps.c:642:25: error: expected declaration specifiers before ';' token
NOKPROBE_SYMBOL(do_int3);
^
arch/x86//kernel/traps.c:691:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/compiler_types.h:59:0,
from <command-line>:0:
include/linux/compiler_attributes.h:149:41: error: expected declaration specifiers before '__attribute__'
# define __visible __attribute__((__externally_visible__))
^
arch/x86/include/asm/traps.h:12:23: note: in expansion of macro '__visible'
#define dotraplinkage __visible
^~~~~~~~~
arch/x86//kernel/traps.c:737:1: note: in expansion of macro 'dotraplinkage'
dotraplinkage void do_debug(struct pt_regs *regs, long error_code)
^~~~~~~~~~~~~
arch/x86//kernel/traps.c:839:26: error: expected declaration specifiers before ';' token
NOKPROBE_SYMBOL(do_debug);
^
arch/x86//kernel/traps.c:847:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from include/linux/compiler_types.h:59:0,
vim +/__exc_invalid_op +63 arch/x86/include/asm/idtentry.h
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 28
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 29 /**
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 30 * DECLARE_IDTENTRY - Declare functions for simple IDT entry points
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 31 * No error code pushed by hardware
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 32 * @vector: Vector number (ignored for C)
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 33 * @func: Function name of the entry point
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 34 *
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 35 * Declares three functions:
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 36 * - The ASM entry point: asm_##func
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 37 * - The XEN PV trap entry point: xen_##func (maybe unused)
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 38 * - The C handler called from the ASM entry point
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 39 *
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 40 * Note: This is the C variant of DECLARE_IDTENTRY(). As the name says it
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 41 * declares the entry points for usage in C code. There is an ASM variant
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 42 * as well which is used to emit the entry stubs in entry_32/64.S.
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 43 */
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 44 #define DECLARE_IDTENTRY(vector, func) \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 45 asmlinkage void asm_##func(void); \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 46 asmlinkage void xen_asm_##func(void); \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 47 __visible void func(struct pt_regs *regs)
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 48
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 49 /**
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 50 * DEFINE_IDTENTRY - Emit code for simple IDT entry points
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 51 * @func: Function name of the entry point
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 52 *
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 53 * @func is called from ASM entry code with interrupts disabled.
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 54 *
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 55 * The macro is written so it acts as function definition. Append the
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 56 * body with a pair of curly brackets.
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 57 *
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 58 * idtentry_enter() contains common code which has to be invoked before
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 59 * arbitrary code in the body. idtentry_exit() contains common code
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 60 * which has to run before returning to the low level assembly code.
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 61 */
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 62 #define DEFINE_IDTENTRY(func) \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 @63 static __always_inline void __##func(struct pt_regs *regs); \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 64 \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 @65 __visible notrace void func(struct pt_regs *regs) \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 66 { \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 67 idtentry_enter(regs); \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 68 __##func (regs); \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 69 idtentry_exit(regs); \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 70 } \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 @71 NOKPROBE_SYMBOL(func); \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 72 \
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 73 static __always_inline void __##func(struct pt_regs *regs)
d6bf56db0c42e3 Thomas Gleixner 2020-02-25 74
:::::: The code at line 63 was first introduced by commit
:::::: d6bf56db0c42e3542e130d972486e6e3858a6ac9 x86/idtentry: Provide macros to define/declare IDT entry points
:::::: TO: Thomas Gleixner <tglx@linutronix.de>
:::::: CC: Thomas Gleixner <tglx@linutronix.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 33740 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-03-09 6:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-09 6:00 [tglx-devel:x86/entry 34/46] arch/x86/include/asm/idtentry.h:63:29: error: storage class specified for parameter '__exc_invalid_op' kbuild test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.