Skip to content

Commit

Permalink
xen: set cpu capabilities from xen_start_kernel()
Browse files Browse the repository at this point in the history
There is no need to set the same capabilities for each cpu
individually. This can easily be done for all cpus when starting the
kernel.

Signed-off-by: Juergen Gross <[email protected]>
Reviewed-by: Boris Ostrovsky <[email protected]>
Signed-off-by: Juergen Gross <[email protected]>
  • Loading branch information
jgross1 committed May 2, 2017
1 parent 31d4726 commit 0808e80
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions arch/x86/xen/enlighten_pv.c
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,12 @@ static void __init xen_init_cpuid_mask(void)
cpuid_leaf1_ecx_set_mask = (1 << (X86_FEATURE_MWAIT % 32));
}

static void __init xen_init_capabilities(void)
{
setup_clear_cpu_cap(X86_BUG_SYSRET_SS_ATTRS);
setup_force_cpu_cap(X86_FEATURE_XENPV);
}

static void xen_set_debugreg(int reg, unsigned long val)
{
HYPERVISOR_set_debugreg(reg, val);
Expand Down Expand Up @@ -1318,6 +1324,7 @@ asmlinkage __visible void __init xen_start_kernel(void)

xen_init_irq_ops();
xen_init_cpuid_mask();
xen_init_capabilities();

#ifdef CONFIG_X86_LOCAL_APIC
/*
Expand Down Expand Up @@ -1506,16 +1513,9 @@ static uint32_t __init xen_platform_pv(void)
return 0;
}

static void xen_set_cpu_features(struct cpuinfo_x86 *c)
{
clear_cpu_bug(c, X86_BUG_SYSRET_SS_ATTRS);
set_cpu_cap(c, X86_FEATURE_XENPV);
}

const struct hypervisor_x86 x86_hyper_xen_pv = {
.name = "Xen PV",
.detect = xen_platform_pv,
.set_cpu_features = xen_set_cpu_features,
.pin_vcpu = xen_pin_vcpu,
};
EXPORT_SYMBOL(x86_hyper_xen_pv);

0 comments on commit 0808e80

Please sign in to comment.