diff options
-rw-r--r-- | arch/x86/xen/enlighten.c | 12 | ||||
-rw-r--r-- | arch/x86/xen/setup.c | 8 |
2 files changed, 11 insertions, 9 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index bd3554934613..7250bef7f49e 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
@@ -1095,6 +1095,8 @@ static void __init xen_setup_stackprotector(void) | |||
1095 | /* First C function to be called on Xen boot */ | 1095 | /* First C function to be called on Xen boot */ |
1096 | asmlinkage void __init xen_start_kernel(void) | 1096 | asmlinkage void __init xen_start_kernel(void) |
1097 | { | 1097 | { |
1098 | struct physdev_set_iopl set_iopl; | ||
1099 | int rc; | ||
1098 | pgd_t *pgd; | 1100 | pgd_t *pgd; |
1099 | 1101 | ||
1100 | if (!xen_start_info) | 1102 | if (!xen_start_info) |
@@ -1209,10 +1211,18 @@ asmlinkage void __init xen_start_kernel(void) | |||
1209 | #else | 1211 | #else |
1210 | pv_info.kernel_rpl = 0; | 1212 | pv_info.kernel_rpl = 0; |
1211 | #endif | 1213 | #endif |
1212 | |||
1213 | /* set the limit of our address space */ | 1214 | /* set the limit of our address space */ |
1214 | xen_reserve_top(); | 1215 | xen_reserve_top(); |
1215 | 1216 | ||
1217 | /* We used to do this in xen_arch_setup, but that is too late on AMD | ||
1218 | * were early_cpu_init (run before ->arch_setup()) calls early_amd_init | ||
1219 | * which pokes 0xcf8 port. | ||
1220 | */ | ||
1221 | set_iopl.iopl = 1; | ||
1222 | rc = HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl); | ||
1223 | if (rc != 0) | ||
1224 | xen_raw_printk("physdev_op failed %d\n", rc); | ||
1225 | |||
1216 | #ifdef CONFIG_X86_32 | 1226 | #ifdef CONFIG_X86_32 |
1217 | /* set up basic CPUID stuff */ | 1227 | /* set up basic CPUID stuff */ |
1218 | cpu_detect(&new_cpu_data); | 1228 | cpu_detect(&new_cpu_data); |
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 630fb53c95f3..38fdffaa71d3 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c | |||
@@ -336,9 +336,6 @@ void __cpuinit xen_enable_syscall(void) | |||
336 | 336 | ||
337 | void __init xen_arch_setup(void) | 337 | void __init xen_arch_setup(void) |
338 | { | 338 | { |
339 | struct physdev_set_iopl set_iopl; | ||
340 | int rc; | ||
341 | |||
342 | xen_panic_handler_init(); | 339 | xen_panic_handler_init(); |
343 | 340 | ||
344 | HYPERVISOR_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments); | 341 | HYPERVISOR_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments); |
@@ -355,11 +352,6 @@ void __init xen_arch_setup(void) | |||
355 | xen_enable_sysenter(); | 352 | xen_enable_sysenter(); |
356 | xen_enable_syscall(); | 353 | xen_enable_syscall(); |
357 | 354 | ||
358 | set_iopl.iopl = 1; | ||
359 | rc = HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl); | ||
360 | if (rc != 0) | ||
361 | printk(KERN_INFO "physdev_op failed %d\n", rc); | ||
362 | |||
363 | #ifdef CONFIG_ACPI | 355 | #ifdef CONFIG_ACPI |
364 | if (!(xen_start_info->flags & SIF_INITDOMAIN)) { | 356 | if (!(xen_start_info->flags & SIF_INITDOMAIN)) { |
365 | printk(KERN_INFO "ACPI in unprivileged domain disabled\n"); | 357 | printk(KERN_INFO "ACPI in unprivileged domain disabled\n"); |