xen: simplify init_hvm_pv_info
init_hvm_pv_info is called only in PVonHVM context, move it into ifdef. init_hvm_pv_info does not fail, make it a void function. remove arguments from init_hvm_pv_info because they are not used by the caller. Signed-off-by: Olaf Hering <olaf@aepfle.de> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
parent
4648da7cb4
commit
4ff2d06255
@ -1471,32 +1471,6 @@ asmlinkage void __init xen_start_kernel(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static int init_hvm_pv_info(int *major, int *minor)
|
|
||||||
{
|
|
||||||
uint32_t eax, ebx, ecx, edx, pages, msr, base;
|
|
||||||
u64 pfn;
|
|
||||||
|
|
||||||
base = xen_cpuid_base();
|
|
||||||
cpuid(base + 1, &eax, &ebx, &ecx, &edx);
|
|
||||||
|
|
||||||
*major = eax >> 16;
|
|
||||||
*minor = eax & 0xffff;
|
|
||||||
printk(KERN_INFO "Xen version %d.%d.\n", *major, *minor);
|
|
||||||
|
|
||||||
cpuid(base + 2, &pages, &msr, &ecx, &edx);
|
|
||||||
|
|
||||||
pfn = __pa(hypercall_page);
|
|
||||||
wrmsr_safe(msr, (u32)pfn, (u32)(pfn >> 32));
|
|
||||||
|
|
||||||
xen_setup_features();
|
|
||||||
|
|
||||||
pv_info.name = "Xen HVM";
|
|
||||||
|
|
||||||
xen_domain_type = XEN_HVM_DOMAIN;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void __ref xen_hvm_init_shared_info(void)
|
void __ref xen_hvm_init_shared_info(void)
|
||||||
{
|
{
|
||||||
int cpu;
|
int cpu;
|
||||||
@ -1529,6 +1503,31 @@ void __ref xen_hvm_init_shared_info(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_XEN_PVHVM
|
#ifdef CONFIG_XEN_PVHVM
|
||||||
|
static void __init init_hvm_pv_info(void)
|
||||||
|
{
|
||||||
|
int major, minor;
|
||||||
|
uint32_t eax, ebx, ecx, edx, pages, msr, base;
|
||||||
|
u64 pfn;
|
||||||
|
|
||||||
|
base = xen_cpuid_base();
|
||||||
|
cpuid(base + 1, &eax, &ebx, &ecx, &edx);
|
||||||
|
|
||||||
|
major = eax >> 16;
|
||||||
|
minor = eax & 0xffff;
|
||||||
|
printk(KERN_INFO "Xen version %d.%d.\n", major, minor);
|
||||||
|
|
||||||
|
cpuid(base + 2, &pages, &msr, &ecx, &edx);
|
||||||
|
|
||||||
|
pfn = __pa(hypercall_page);
|
||||||
|
wrmsr_safe(msr, (u32)pfn, (u32)(pfn >> 32));
|
||||||
|
|
||||||
|
xen_setup_features();
|
||||||
|
|
||||||
|
pv_info.name = "Xen HVM";
|
||||||
|
|
||||||
|
xen_domain_type = XEN_HVM_DOMAIN;
|
||||||
|
}
|
||||||
|
|
||||||
static int __cpuinit xen_hvm_cpu_notify(struct notifier_block *self,
|
static int __cpuinit xen_hvm_cpu_notify(struct notifier_block *self,
|
||||||
unsigned long action, void *hcpu)
|
unsigned long action, void *hcpu)
|
||||||
{
|
{
|
||||||
@ -1551,12 +1550,7 @@ static struct notifier_block xen_hvm_cpu_notifier __cpuinitdata = {
|
|||||||
|
|
||||||
static void __init xen_hvm_guest_init(void)
|
static void __init xen_hvm_guest_init(void)
|
||||||
{
|
{
|
||||||
int r;
|
init_hvm_pv_info();
|
||||||
int major, minor;
|
|
||||||
|
|
||||||
r = init_hvm_pv_info(&major, &minor);
|
|
||||||
if (r < 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
xen_hvm_init_shared_info();
|
xen_hvm_init_shared_info();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user