|
@@ -378,7 +378,7 @@ static __init int svm_hardware_setup(void)
|
|
int cpu;
|
|
int cpu;
|
|
struct page *iopm_pages;
|
|
struct page *iopm_pages;
|
|
struct page *msrpm_pages;
|
|
struct page *msrpm_pages;
|
|
- void *msrpm_va;
|
|
|
|
|
|
+ void *iopm_va, *msrpm_va;
|
|
int r;
|
|
int r;
|
|
|
|
|
|
kvm_emulator_want_group7_invlpg();
|
|
kvm_emulator_want_group7_invlpg();
|
|
@@ -387,8 +387,10 @@ static __init int svm_hardware_setup(void)
|
|
|
|
|
|
if (!iopm_pages)
|
|
if (!iopm_pages)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
- memset(page_address(iopm_pages), 0xff,
|
|
|
|
- PAGE_SIZE * (1 << IOPM_ALLOC_ORDER));
|
|
|
|
|
|
+
|
|
|
|
+ iopm_va = page_address(iopm_pages);
|
|
|
|
+ memset(iopm_va, 0xff, PAGE_SIZE * (1 << IOPM_ALLOC_ORDER));
|
|
|
|
+ clear_bit(0x80, iopm_va); /* allow direct access to PC debug port */
|
|
iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT;
|
|
iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT;
|
|
|
|
|
|
|
|
|