diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -74,11 +74,10 @@ printk("HVM: %s enabled\n", fns->name); /* - * Allow direct access to the PC debug ports 0x80 and 0xed (they are - * often used for I/O delays, but the vmexits simply slow things down). + * Allow direct access to the PC debug ports 0xed (it is often used + * for I/O delays, but the vmexits simply slow things down). */ memset(hvm_io_bitmap, ~0, sizeof(hvm_io_bitmap)); - __clear_bit(0x80, hvm_io_bitmap); __clear_bit(0xed, hvm_io_bitmap); hvm_funcs = *fns; diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -1451,6 +1451,12 @@ setup_vmcs_dump(); hvm_enable(&vmx_function_table); + + /* + * Allow direct access to the PC debug ports 0x80, which is used for I/O + * delays. On some AMD chipsets it is problematic, but not on Intel. + */ + __clear_bit(0x80, hvm_io_bitmap); } /*