uot;,"3","2") \
+ _POST_EFLAGS("0", "3", "2") \
: "=m" (_eflags), "=m" ((_dst).val), "=&r" (_tmp) \
- :
static __init int kvm_init(void)
{
@@ -3567,7 +3570,9 @@ static __init int kvm_init(void)
kvm_init_msr_list();
- if ((bad_page = alloc_page(GFP_KERNEL)) == NULL) {
+ bad_page = alloc_page(GFP_KERNEL);
+
+ if (bad_page == NULL) {
r = -ENOMEM;
inline unsigned long read_msr(unsigned long msr)
static inline void fx_save(struct i387_fxsave_struct *image)
{
- asm ("fxsave (%0)":: "r" (image));
+ asm("fxsave (%0)":: "r" (image));
}
static inline void fx_restore(struct i387_fxsave_stru
@@ -3567,7 +3570,9 @@ static __init int kvm_init(void)
kvm_init_msr_list();
- if ((bad_page = alloc_page(GFP_KERNEL)) == NULL) {
+ bad_page = alloc_page(GFP_KERNEL);
+
+ if (bad_page == NULL) {
r = -ENOMEM;
ine unsigned long read_msr(unsigned long msr)
static inline void fx_save(struct i387_fxsave_struct *image)
{
- asm ("fxsave (%0)":: "r" (image));
+ asm("fxsave (%0)":: "r" (image));
lated((unsigned long)c->src.ptr,
+ &c->src.val,
+ c->src.bytes,
+ ctxt->vcpu);
+ if (rc != 0)
goto done;
c->src.orig_
regs[VCPU_REGS_R12])),
@@ -2353,11 +2356,12 @@ static void vmx_vcpu_run(struct kvm_vcpu *vcpu, struct
kvm_run *kvm_run)
[r15]"i"(offsetof(struct kvm_vcpu, regs[VCPU_REGS_R15])),
#endif
[cr2]"i"(offsetof(
REGS_R15]))
+ , [r8]"i"(offsetof(struct vcpu_svm, vcpu.regs[VCPU_REGS_R8])),
+ [r9]"i"(offsetof(struct vcpu_svm, vcpu.regs[VCPU_REGS_R9])),
+ [r10]"i"(offsetof(struct vcpu_svm, vcpu.regs[VCPU_REGS_R10])),
+ [r11]&qu
w_present_pte(ent));
+ va, gpa, hpa, ent,
+ is_shadow_present_pte(ent));
else if (ent == shadow_notrap_nonpresent_pte
&& !is_error_hpa(hpa))
printk(KERN_ERR "au
tate = VCPU_MP_STATE_RUNNABLE;
wake_up_interruptible(q);
}
--
1.5.2.1
--
Mike Day
http://www.ncultra.org
AIM: ncmikeday | Yahoo IM: ultra.runner
PGP key: http://www.ncultra.org/ncmike/pubkey.asc
-
This SF.net email is spo
_page(GFP_KERNEL)) == NULL) {
+ bad_page = alloc_page(GFP_KERNEL);
+
+ if (bad_page == NULL) {
r = -ENOMEM;
goto out;
}
@@ -3593,6 +3598,3 @@ static __exit void kvm_exit(void)
module_init(kvm_init)
module_exit(kvm_exit)
-
-EXPORT_SYMBOL_GPL(kvm_init_x
1:8, general purpose
register */
+#define DEBUG_REG_ACCESS_REG0xf00 /* 11:8, general purpose reg.
*/
/* segment AR */
--
1.5.2.1
--
Mike Day
http://www.ncultra.org
AIM: ncmikeday | Yahoo IM: ultra.runner
PGP key: http://www
struct __attribute__ ((__packed__)) vmcb {
#define SVM_EXIT_ERR -1
-#define SVM_CR0_SELECTIVE_MASK (1 << 3 | 1) // TS and MP
+#define SVM_CR0_SELECTIVE_MASK (1 << 3 | 1) /* TS and MP */
#define SVM_VMLOAD ".byte 0x0f, 0x01, 0xda"
#define SVM_VMRUN ".byte 0x0f, 0
table_gfn[walker->level - 1 ] = table_gfn;
+ walker->table_gfn[walker->level - 1] = table_gfn;
pgprintk("%s: table_gfn[%d] %lx\n", __FUNCTION__,
walker->level - 1, table_gfn);
}
--
1.5.2.1
--
Mike Day
@@ -761,17 +761,17 @@ static inline unsigned long read_msr(unsigned long msr)
static inline void fx_save(struct i387_fxsave_struct *image)
{
- asm ("fxsave (%0)":: "r" (image));
+ asm("fxsave (%0)":: "r" (image));
}
one CPU
>running in QEMU and another running on bare metal and they both were
>attempting to access a spin lock things would break down pretty quickly.
Another possibility is pulling x86_emulate into its own library that
is shared by xen, kvm, and available for use by any other project. making
i
Are all the development TODO's up-to-date?
http://kvm.qumranet.com/kvmwiki/TODO
thanks,
Mike
--
Mike Day
http://www.ncultra.org
AIM: ncmikeday | Yahoo IM: ultra.runner
PGP key: http://www.ncultra.org/ncmike/pubke
17 matches
Mail list logo