mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86: arrange for ENDBR zapping from <vendor>_ctxt_switch_masking()
While altcall is already used for them, the functions want announcing in
.init.rodata.cf_clobber, even if the resulting static variables aren't
otherwise used.
While doing this also move ctxt_switch_masking to .data.ro_after_init.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
(cherry picked from commit 044168fa3a)
This commit is contained in:
1 parent
363745e52d
commit
f2947a0da3
3 files changed
+11
-1
No files matched your search
@@ -258,6 +258,11 @@ static void cf_check amd_ctxt_switch_masking(const struct vcpu *next)
|
||||
#undef LAZY
|
||||
}
|
||||
|
||||
#ifdef CONFIG_XEN_IBT /* Announce the function to ENDBR clobbering logic. */
|
||||
static const typeof(ctxt_switch_masking) __initconst_cf_clobber __used csm =
|
||||
amd_ctxt_switch_masking;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Mask the features and extended features returned by CPUID. Parameters are
|
||||
* set from the boot line via two methods:
|
||||
|
||||
@@ -121,7 +121,7 @@ static const struct cpu_dev default_cpu = {
|
||||
static const struct cpu_dev *this_cpu = &default_cpu;
|
||||
|
||||
static DEFINE_PER_CPU(uint64_t, msr_misc_features);
|
||||
void (* __read_mostly ctxt_switch_masking)(const struct vcpu *next);
|
||||
void (* __ro_after_init ctxt_switch_masking)(const struct vcpu *next);
|
||||
|
||||
bool __init probe_cpuid_faulting(void)
|
||||
{
|
||||
|
||||
@@ -220,6 +220,11 @@ static void cf_check intel_ctxt_switch_masking(const struct vcpu *next)
|
||||
#undef LAZY
|
||||
}
|
||||
|
||||
#ifdef CONFIG_XEN_IBT /* Announce the function to ENDBR clobbering logic. */
|
||||
static const typeof(ctxt_switch_masking) __initconst_cf_clobber __used csm =
|
||||
intel_ctxt_switch_masking;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* opt_cpuid_mask_ecx/edx: cpuid.1[ecx, edx] feature mask.
|
||||
* For example, E8400[Intel Core 2 Duo Processor series] ecx = 0x0008E3FD,
|
||||
|
||||