SHA256
1
0
forked from pool/xen
OBS User unknown
2008-03-27 22:24:06 +00:00
committed by Git OBS Bridge
parent 1ae41ae3bd
commit 614a20ee4e
19 changed files with 629 additions and 402 deletions

View File

@@ -1,7 +1,7 @@
Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmcs.c
Index: xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmcs.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/hvm/vmx/vmcs.c
+++ xen-3.2-testing/xen/arch/x86/hvm/vmx/vmcs.c
--- xen-3.2.1-testing.orig/xen/arch/x86/hvm/vmx/vmcs.c
+++ xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmcs.c
@@ -38,6 +38,9 @@
#include <asm/shadow.h>
#include <asm/tboot.h>
@@ -61,11 +61,11 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmcs.c
vmx_vmcs_exit(v);
}
Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
Index: xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmx.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/hvm/vmx/vmx.c
+++ xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
@@ -58,18 +58,23 @@ static void vmx_ctxt_switch_to(struct vc
--- xen-3.2.1-testing.orig/xen/arch/x86/hvm/vmx/vmx.c
+++ xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmx.c
@@ -57,18 +57,23 @@ static void vmx_ctxt_switch_to(struct vc
static int vmx_alloc_vlapic_mapping(struct domain *d);
static void vmx_free_vlapic_mapping(struct domain *d);
@@ -90,7 +90,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
}
static int vmx_vcpu_initialise(struct vcpu *v)
@@ -1122,6 +1127,7 @@ static void vmx_update_guest_cr(struct v
@@ -1132,6 +1137,7 @@ static void vmx_update_guest_cr(struct v
vmx_load_pdptrs(v);
}
__vmwrite(GUEST_CR3, v->arch.hvm_vcpu.hw_cr[3]);
@@ -98,7 +98,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
break;
case 4:
v->arch.hvm_vcpu.hw_cr[4] = HVM_CR4_HOST_MASK;
@@ -1170,9 +1176,14 @@ static void vmx_update_guest_efer(struct
@@ -1180,9 +1186,14 @@ static void vmx_update_guest_efer(struct
static void vmx_flush_guest_tlbs(void)
{
@@ -116,7 +116,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
}
static void vmx_inject_exception(
@@ -1226,6 +1237,11 @@ static struct hvm_function_table vmx_fun
@@ -1236,6 +1247,11 @@ static struct hvm_function_table vmx_fun
.cpu_down = vmx_cpu_down,
};
@@ -128,7 +128,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
void start_vmx(void)
{
static int bootstrapped;
@@ -1265,6 +1281,26 @@ void start_vmx(void)
@@ -1275,6 +1291,26 @@ void start_vmx(void)
vmx_function_table.hap_supported = 1;
}
@@ -201,10 +201,10 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
static void vmx_install_vlapic_mapping(struct vcpu *v)
{
paddr_t virt_page_ma, apic_page_ma;
Index: xen-3.2-testing/xen/arch/x86/mm/shadow/multi.c
Index: xen-3.2.1-testing/xen/arch/x86/mm/shadow/multi.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/mm/shadow/multi.c
+++ xen-3.2-testing/xen/arch/x86/mm/shadow/multi.c
--- xen-3.2.1-testing.orig/xen/arch/x86/mm/shadow/multi.c
+++ xen-3.2.1-testing/xen/arch/x86/mm/shadow/multi.c
@@ -35,6 +35,7 @@
#include <asm/hvm/hvm.h>
#include <asm/hvm/cacheattr.h>
@@ -213,7 +213,7 @@ Index: xen-3.2-testing/xen/arch/x86/mm/shadow/multi.c
#include "private.h"
#include "types.h"
@@ -3106,6 +3107,7 @@ sh_invlpg(struct vcpu *v, unsigned long
@@ -3102,6 +3103,7 @@ sh_invlpg(struct vcpu *v, unsigned long
== SH_type_fl1_shadow )
{
flush_tlb_local();
@@ -221,10 +221,10 @@ Index: xen-3.2-testing/xen/arch/x86/mm/shadow/multi.c
return 0;
}
Index: xen-3.2-testing/xen/include/asm-x86/hvm/domain.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hvm/domain.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hvm/domain.h
+++ xen-3.2-testing/xen/include/asm-x86/hvm/domain.h
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hvm/domain.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hvm/domain.h
@@ -61,6 +61,7 @@ struct hvm_domain {
uint64_t params[HVM_NR_PARAMS];
@@ -233,11 +233,11 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/domain.h
/* Memory ranges with pinned cache attributes. */
struct list_head pinned_cacheattr_ranges;
Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hvm/vmx/vmcs.h
+++ xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
@@ -90,6 +90,8 @@ struct arch_vmx_struct {
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hvm/vmx/vmcs.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
@@ -89,6 +89,8 @@ struct arch_vmx_struct {
u32 exec_control;
u32 secondary_exec_control;
@@ -246,7 +246,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
#ifdef __x86_64__
struct vmx_msr_state msr_state;
unsigned long shadow_gs;
@@ -156,6 +158,7 @@ extern u32 vmx_vmentry_control;
@@ -165,6 +167,7 @@ extern u32 vmx_vmentry_control;
#define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001
#define SECONDARY_EXEC_ENABLE_EPT 0x00000002
@@ -254,7 +254,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
#define SECONDARY_EXEC_WBINVD_EXITING 0x00000040
extern u32 vmx_secondary_exec_control;
@@ -175,6 +178,8 @@ extern bool_t cpu_has_vmx_ins_outs_instr
@@ -184,6 +187,8 @@ extern bool_t cpu_has_vmx_ins_outs_instr
(vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS)
#define cpu_has_vmx_ept \
(vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_EPT)
@@ -263,7 +263,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
/* GUEST_INTERRUPTIBILITY_INFO flags. */
#define VMX_INTR_SHADOW_STI 0x00000001
@@ -184,6 +189,7 @@ extern bool_t cpu_has_vmx_ins_outs_instr
@@ -193,6 +198,7 @@ extern bool_t cpu_has_vmx_ins_outs_instr
/* VMCS field encodings. */
enum vmcs_field {
@@ -271,7 +271,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
GUEST_ES_SELECTOR = 0x00000800,
GUEST_CS_SELECTOR = 0x00000802,
GUEST_SS_SELECTOR = 0x00000804,
@@ -323,6 +329,8 @@ enum vmcs_field {
@@ -332,6 +338,8 @@ enum vmcs_field {
HOST_RIP = 0x00006c16,
};
@@ -280,11 +280,11 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
void vmx_disable_intercept_for_msr(struct vcpu *v, u32 msr);
int vmx_read_guest_msr(struct vcpu *v, u32 msr, u64 *val);
int vmx_write_guest_msr(struct vcpu *v, u32 msr, u64 val);
Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmx.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hvm/vmx/vmx.h
+++ xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
@@ -172,6 +172,7 @@ int vmx_realmode_io_complete(void);
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hvm/vmx/vmx.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmx.h
@@ -175,6 +175,7 @@ int vmx_realmode_io_complete(void);
#define VMRESUME_OPCODE ".byte 0x0f,0x01,0xc3\n"
#define VMWRITE_OPCODE ".byte 0x0f,0x79\n"
#define INVEPT_OPCODE ".byte 0x66,0x0f,0x38,0x80\n" /* m128,r64/32 */
@@ -292,7 +292,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
#define VMXOFF_OPCODE ".byte 0x0f,0x01,0xc4\n"
#define VMXON_OPCODE ".byte 0xf3,0x0f,0xc7\n"
@@ -277,6 +278,23 @@ static inline void __invept(int ext, u64
@@ -280,6 +281,23 @@ static inline void __invept(int ext, u64
: "memory");
}
@@ -316,7 +316,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
static inline void __vmxoff(void)
{
asm volatile (
@@ -329,6 +347,22 @@ static inline void ept_sync_all(void)
@@ -332,6 +350,22 @@ static inline void ept_sync_all(void)
__invept(2, 0, 0);
}