mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-29 16:18:09 -04:00
The io_delay() paravirt hook is in no way performance critical and all users setting it to a different function than native_io_delay() are using an empty function as replacement. Allow replacing the hook with a bool indicating whether native_io_delay() should be called. [ bp: Massage commit message. ] Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Link: https://patch.msgid.link/20260119182632.596369-3-jgross@suse.com
42 lines
861 B
C
42 lines
861 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#ifndef _ASM_X86_PARAVIRT_BASE_H
|
|
#define _ASM_X86_PARAVIRT_BASE_H
|
|
|
|
/*
|
|
* Wrapper type for pointers to code which uses the non-standard
|
|
* calling convention. See PV_CALL_SAVE_REGS_THUNK below.
|
|
*/
|
|
struct paravirt_callee_save {
|
|
void *func;
|
|
};
|
|
|
|
struct pv_info {
|
|
#ifdef CONFIG_PARAVIRT_XXL
|
|
u16 extra_user_64bit_cs; /* __USER_CS if none */
|
|
#endif
|
|
bool io_delay;
|
|
|
|
const char *name;
|
|
};
|
|
|
|
void default_banner(void);
|
|
extern struct pv_info pv_info;
|
|
unsigned long paravirt_ret0(void);
|
|
#ifdef CONFIG_PARAVIRT_XXL
|
|
u64 _paravirt_ident_64(u64);
|
|
#endif
|
|
#define paravirt_nop ((void *)nop_func)
|
|
|
|
#ifdef CONFIG_PARAVIRT
|
|
#define call_io_delay() pv_info.io_delay
|
|
#endif
|
|
|
|
#ifdef CONFIG_PARAVIRT_SPINLOCKS
|
|
void paravirt_set_cap(void);
|
|
#else
|
|
static inline void paravirt_set_cap(void) { }
|
|
#endif
|
|
|
|
#endif /* _ASM_X86_PARAVIRT_BASE_H */
|