diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2007-04-30 02:48:11 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-07-16 05:05:37 -0400 |
commit | c86813393f8b8f9f738ab57d9837858ed850df4b (patch) | |
tree | baaf7859daffb2d4c87749c09bed7dfcfe671468 /drivers/kvm | |
parent | fdef3ad1b38660d74a29abc990940b5dbaaf3fc9 (diff) |
KVM: SVM: Allow direct guest access to PC debug port
The PC debug port is used for IO delay and does not require emulation.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm')
-rw-r--r-- | drivers/kvm/svm.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c index fa17d6d4f0cb..6cd6a50a0340 100644 --- a/drivers/kvm/svm.c +++ b/drivers/kvm/svm.c | |||
@@ -378,7 +378,7 @@ static __init int svm_hardware_setup(void) | |||
378 | int cpu; | 378 | int cpu; |
379 | struct page *iopm_pages; | 379 | struct page *iopm_pages; |
380 | struct page *msrpm_pages; | 380 | struct page *msrpm_pages; |
381 | void *msrpm_va; | 381 | void *iopm_va, *msrpm_va; |
382 | int r; | 382 | int r; |
383 | 383 | ||
384 | kvm_emulator_want_group7_invlpg(); | 384 | kvm_emulator_want_group7_invlpg(); |
@@ -387,8 +387,10 @@ static __init int svm_hardware_setup(void) | |||
387 | 387 | ||
388 | if (!iopm_pages) | 388 | if (!iopm_pages) |
389 | return -ENOMEM; | 389 | return -ENOMEM; |
390 | memset(page_address(iopm_pages), 0xff, | 390 | |
391 | PAGE_SIZE * (1 << IOPM_ALLOC_ORDER)); | 391 | iopm_va = page_address(iopm_pages); |
392 | memset(iopm_va, 0xff, PAGE_SIZE * (1 << IOPM_ALLOC_ORDER)); | ||
393 | clear_bit(0x80, iopm_va); /* allow direct access to PC debug port */ | ||
392 | iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT; | 394 | iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT; |
393 | 395 | ||
394 | 396 | ||