public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations"
@ 2010-02-12  6:50 Takuya Yoshikawa
  2010-02-12  6:53 ` [PATCH v3 1/4] KVM: X86EMUL macro replacements: from do_fetch_insn_byte() to x86_decode_insn() Takuya Yoshikawa
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Takuya Yoshikawa @ 2010-02-12  6:50 UTC (permalink / raw)
  To: avi, mtosatti, gleb; +Cc: kvm

This is the rework of "Fix x86 emulator's fault propagations".
  -- http://www.spinics.net/lists/kvm/msg28874.html

I read the review comments from Avi, Marcelo and Gleb and removed
some parts which should be done with more care: descriptor related
part and emulator_sys* part.

Now the contents is like this:
  - patch 1: X86EMUL macro replacements: from do_fetch_insn_byte()
             to x86_decode_insn()
  - patch 2: X86EMUL macro replacements: x86_emulate_insn() and its
             helpers
  - patch 3: Fix x86_emulate_insn() not to use the variable rc for
             non-X86EMUL values
  - patch 4: Tiny fix: remove redundant prototype of load_pdptrs()


Gleb, could you give me your Ack?

Thanks
  Takuya

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v3 1/4] KVM: X86EMUL macro replacements: from do_fetch_insn_byte() to x86_decode_insn()
  2010-02-12  6:50 [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Takuya Yoshikawa
@ 2010-02-12  6:53 ` Takuya Yoshikawa
  2010-02-12  6:57 ` [PATCH v3 2/4] KVM: X86EMUL macro replacements: x86_emulate_insn() and its helpers Takuya Yoshikawa
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Takuya Yoshikawa @ 2010-02-12  6:53 UTC (permalink / raw)
  To: avi, mtosatti, gleb; +Cc: kvm

This patch just replaces the integer values used inside x86's
decode functions to X86EMUL_*.

By this patch, it becomes clearer that we are using X86EMUL_*
value propagated from ops->read_std() in do_fetch_insn_byte().


Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
---
 arch/x86/kvm/emulate.c |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 31f4526..3f77951 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -643,20 +643,20 @@ static int do_fetch_insn_byte(struct x86_emulate_ctxt *ctxt,
 	if (linear < fc->start || linear >= fc->end) {
 		size = min(15UL, PAGE_SIZE - offset_in_page(linear));
 		rc = ops->fetch(linear, fc->data, size, ctxt->vcpu, NULL);
-		if (rc)
+		if (rc != X86EMUL_CONTINUE)
 			return rc;
 		fc->start = linear;
 		fc->end = linear + size;
 	}
 	*dest = fc->data[linear - fc->start];
-	return 0;
+	return X86EMUL_CONTINUE;
 }
 
 static int do_insn_fetch(struct x86_emulate_ctxt *ctxt,
 			 struct x86_emulate_ops *ops,
 			 unsigned long eip, void *dest, unsigned size)
 {
-	int rc = 0;
+	int rc;
 
 	/* x86 instructions are limited to 15 bytes. */
 	if (eip + size - ctxt->decode.eip_orig > 15)
@@ -664,10 +664,10 @@ static int do_insn_fetch(struct x86_emulate_ctxt *ctxt,
 	eip += ctxt->cs_base;
 	while (size--) {
 		rc = do_fetch_insn_byte(ctxt, ops, eip++, dest++);
-		if (rc)
+		if (rc != X86EMUL_CONTINUE)
 			return rc;
 	}
-	return 0;
+	return X86EMUL_CONTINUE;
 }
 
 /*
@@ -778,7 +778,7 @@ static int decode_modrm(struct x86_emulate_ctxt *ctxt,
 	struct decode_cache *c = &ctxt->decode;
 	u8 sib;
 	int index_reg = 0, base_reg = 0, scale;
-	int rc = 0;
+	int rc = X86EMUL_CONTINUE;
 
 	if (c->rex_prefix) {
 		c->modrm_reg = (c->rex_prefix & 4) << 1;	/* REX.R */
@@ -891,7 +891,7 @@ static int decode_abs(struct x86_emulate_ctxt *ctxt,
 		      struct x86_emulate_ops *ops)
 {
 	struct decode_cache *c = &ctxt->decode;
-	int rc = 0;
+	int rc = X86EMUL_CONTINUE;
 
 	switch (c->ad_bytes) {
 	case 2:
@@ -912,7 +912,7 @@ int
 x86_decode_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops)
 {
 	struct decode_cache *c = &ctxt->decode;
-	int rc = 0;
+	int rc = X86EMUL_CONTINUE;
 	int mode = ctxt->mode;
 	int def_op_bytes, def_ad_bytes, group;
 
@@ -1042,7 +1042,7 @@ done_prefixes:
 		rc = decode_modrm(ctxt, ops);
 	else if (c->d & MemAbs)
 		rc = decode_abs(ctxt, ops);
-	if (rc)
+	if (rc != X86EMUL_CONTINUE)
 		goto done;
 
 	if (!c->has_seg_override)
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v3 2/4] KVM: X86EMUL macro replacements: x86_emulate_insn() and its helpers
  2010-02-12  6:50 [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Takuya Yoshikawa
  2010-02-12  6:53 ` [PATCH v3 1/4] KVM: X86EMUL macro replacements: from do_fetch_insn_byte() to x86_decode_insn() Takuya Yoshikawa
@ 2010-02-12  6:57 ` Takuya Yoshikawa
  2010-02-12  7:00 ` [PATCH v3 3/4] KVM: Fix x86_emulate_insn() not to use the variable rc for non-X86EMUL values Takuya Yoshikawa
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Takuya Yoshikawa @ 2010-02-12  6:57 UTC (permalink / raw)
  To: avi, mtosatti, gleb; +Cc: kvm

This patch just replaces integer values used inside
x86_emulate_insn() and its helper functions to X86EMUL_*.

The purpose of this is to make it clear what will happen
when the variable rc is compared to X86EMUL_* at the end
of x86_emulate_insn().


Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
---
 arch/x86/kvm/emulate.c |   62 ++++++++++++++++++++++-------------------------
 1 files changed, 29 insertions(+), 33 deletions(-)

diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 3f77951..207075b 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -698,7 +698,7 @@ static int read_descriptor(struct x86_emulate_ctxt *ctxt,
 	*address = 0;
 	rc = ops->read_std((unsigned long)ptr, (unsigned long *)size, 2,
 			   ctxt->vcpu, NULL);
-	if (rc)
+	if (rc != X86EMUL_CONTINUE)
 		return rc;
 	rc = ops->read_std((unsigned long)ptr + 2, address, op_bytes,
 			   ctxt->vcpu, NULL);
@@ -1302,7 +1302,7 @@ static int emulate_pop_sreg(struct x86_emulate_ctxt *ctxt,
 	int rc;
 
 	rc = emulate_pop(ctxt, ops, &selector, c->op_bytes);
-	if (rc != 0)
+	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
 	rc = kvm_load_segment_descriptor(ctxt->vcpu, (u16)selector, 1, seg);
@@ -1328,7 +1328,7 @@ static int emulate_popa(struct x86_emulate_ctxt *ctxt,
 			struct x86_emulate_ops *ops)
 {
 	struct decode_cache *c = &ctxt->decode;
-	int rc = 0;
+	int rc = X86EMUL_CONTINUE;
 	int reg = VCPU_REGS_RDI;
 
 	while (reg >= VCPU_REGS_RAX) {
@@ -1339,7 +1339,7 @@ static int emulate_popa(struct x86_emulate_ctxt *ctxt,
 		}
 
 		rc = emulate_pop(ctxt, ops, &c->regs[reg], c->op_bytes);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			break;
 		--reg;
 	}
@@ -1350,12 +1350,8 @@ static inline int emulate_grp1a(struct x86_emulate_ctxt *ctxt,
 				struct x86_emulate_ops *ops)
 {
 	struct decode_cache *c = &ctxt->decode;
-	int rc;
 
-	rc = emulate_pop(ctxt, ops, &c->dst.val, c->dst.bytes);
-	if (rc != 0)
-		return rc;
-	return 0;
+	return emulate_pop(ctxt, ops, &c->dst.val, c->dst.bytes);
 }
 
 static inline void emulate_grp2(struct x86_emulate_ctxt *ctxt)
@@ -1391,7 +1387,7 @@ static inline int emulate_grp3(struct x86_emulate_ctxt *ctxt,
 			       struct x86_emulate_ops *ops)
 {
 	struct decode_cache *c = &ctxt->decode;
-	int rc = 0;
+	int rc = X86EMUL_CONTINUE;
 
 	switch (c->modrm_reg) {
 	case 0 ... 1:	/* test */
@@ -1438,7 +1434,7 @@ static inline int emulate_grp45(struct x86_emulate_ctxt *ctxt,
 		emulate_push(ctxt);
 		break;
 	}
-	return 0;
+	return X86EMUL_CONTINUE;
 }
 
 static inline int emulate_grp9(struct x86_emulate_ctxt *ctxt,
@@ -1469,7 +1465,7 @@ static inline int emulate_grp9(struct x86_emulate_ctxt *ctxt,
 			return rc;
 		ctxt->eflags |= EFLG_ZF;
 	}
-	return 0;
+	return X86EMUL_CONTINUE;
 }
 
 static int emulate_ret_far(struct x86_emulate_ctxt *ctxt,
@@ -1480,12 +1476,12 @@ static int emulate_ret_far(struct x86_emulate_ctxt *ctxt,
 	unsigned long cs;
 
 	rc = emulate_pop(ctxt, ops, &c->eip, c->op_bytes);
-	if (rc)
+	if (rc != X86EMUL_CONTINUE)
 		return rc;
 	if (c->op_bytes == 4)
 		c->eip = (u32)c->eip;
 	rc = emulate_pop(ctxt, ops, &cs, c->op_bytes);
-	if (rc)
+	if (rc != X86EMUL_CONTINUE)
 		return rc;
 	rc = kvm_load_segment_descriptor(ctxt->vcpu, (u16)cs, 1, VCPU_SREG_CS);
 	return rc;
@@ -1540,7 +1536,7 @@ static inline int writeback(struct x86_emulate_ctxt *ctxt,
 	default:
 		break;
 	}
-	return 0;
+	return X86EMUL_CONTINUE;
 }
 
 static void toggle_interruptibility(struct x86_emulate_ctxt *ctxt, u32 mask)
@@ -1812,7 +1808,7 @@ x86_emulate_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops)
 	struct decode_cache *c = &ctxt->decode;
 	unsigned int port;
 	int io_dir_in;
-	int rc = 0;
+	int rc = X86EMUL_CONTINUE;
 
 	ctxt->interruptibility = 0;
 
@@ -1922,7 +1918,7 @@ special_insn:
 		break;
 	case 0x07:		/* pop es */
 		rc = emulate_pop_sreg(ctxt, ops, VCPU_SREG_ES);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0x08 ... 0x0d:
@@ -1941,7 +1937,7 @@ special_insn:
 		break;
 	case 0x17:		/* pop ss */
 		rc = emulate_pop_sreg(ctxt, ops, VCPU_SREG_SS);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0x18 ... 0x1d:
@@ -1953,7 +1949,7 @@ special_insn:
 		break;
 	case 0x1f:		/* pop ds */
 		rc = emulate_pop_sreg(ctxt, ops, VCPU_SREG_DS);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0x20 ... 0x25:
@@ -1984,7 +1980,7 @@ special_insn:
 	case 0x58 ... 0x5f: /* pop reg */
 	pop_instruction:
 		rc = emulate_pop(ctxt, ops, &c->dst.val, c->op_bytes);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0x60:	/* pusha */
@@ -1992,7 +1988,7 @@ special_insn:
 		break;
 	case 0x61:	/* popa */
 		rc = emulate_popa(ctxt, ops);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0x63:		/* movsxd */
@@ -2143,7 +2139,7 @@ special_insn:
 	}
 	case 0x8f:		/* pop (sole member of Grp1a) */
 		rc = emulate_grp1a(ctxt, ops);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0x90: /* nop / xchg r8,rax */
@@ -2279,7 +2275,7 @@ special_insn:
 		break;
 	case 0xcb:		/* ret far */
 		rc = emulate_ret_far(ctxt, ops);
-		if (rc)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0xd0 ... 0xd1:	/* Grp2 */
@@ -2355,7 +2351,7 @@ special_insn:
 		break;
 	case 0xf6 ... 0xf7:	/* Grp3 */
 		rc = emulate_grp3(ctxt, ops);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0xf8: /* clc */
@@ -2389,14 +2385,14 @@ special_insn:
 		break;
 	case 0xfe ... 0xff:	/* Grp4/Grp5 */
 		rc = emulate_grp45(ctxt, ops);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	}
 
 writeback:
 	rc = writeback(ctxt, ops);
-	if (rc != 0)
+	if (rc != X86EMUL_CONTINUE)
 		goto done;
 
 	/* Commit shadow register state. */
@@ -2422,7 +2418,7 @@ twobyte_insn:
 				goto cannot_emulate;
 
 			rc = kvm_fix_hypercall(ctxt->vcpu);
-			if (rc)
+			if (rc != X86EMUL_CONTINUE)
 				goto done;
 
 			/* Let the processor re-execute the fixed hypercall */
@@ -2433,7 +2429,7 @@ twobyte_insn:
 		case 2: /* lgdt */
 			rc = read_descriptor(ctxt, ops, c->src.ptr,
 					     &size, &address, c->op_bytes);
-			if (rc)
+			if (rc != X86EMUL_CONTINUE)
 				goto done;
 			realmode_lgdt(ctxt->vcpu, size, address);
 			/* Disable writeback. */
@@ -2444,7 +2440,7 @@ twobyte_insn:
 				switch (c->modrm_rm) {
 				case 1:
 					rc = kvm_fix_hypercall(ctxt->vcpu);
-					if (rc)
+					if (rc != X86EMUL_CONTINUE)
 						goto done;
 					break;
 				default:
@@ -2454,7 +2450,7 @@ twobyte_insn:
 				rc = read_descriptor(ctxt, ops, c->src.ptr,
 						     &size, &address,
 						     c->op_bytes);
-				if (rc)
+				if (rc != X86EMUL_CONTINUE)
 					goto done;
 				realmode_lidt(ctxt->vcpu, size, address);
 			}
@@ -2578,7 +2574,7 @@ twobyte_insn:
 		break;
 	case 0xa1:	 /* pop fs */
 		rc = emulate_pop_sreg(ctxt, ops, VCPU_SREG_FS);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0xa3:
@@ -2597,7 +2593,7 @@ twobyte_insn:
 		break;
 	case 0xa9:	/* pop gs */
 		rc = emulate_pop_sreg(ctxt, ops, VCPU_SREG_GS);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		break;
 	case 0xab:
@@ -2670,7 +2666,7 @@ twobyte_insn:
 		break;
 	case 0xc7:		/* Grp9 (cmpxchg8b) */
 		rc = emulate_grp9(ctxt, ops, memop);
-		if (rc != 0)
+		if (rc != X86EMUL_CONTINUE)
 			goto done;
 		c->dst.type = OP_NONE;
 		break;
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v3 3/4] KVM: Fix x86_emulate_insn() not to use the variable rc for non-X86EMUL values
  2010-02-12  6:50 [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Takuya Yoshikawa
  2010-02-12  6:53 ` [PATCH v3 1/4] KVM: X86EMUL macro replacements: from do_fetch_insn_byte() to x86_decode_insn() Takuya Yoshikawa
  2010-02-12  6:57 ` [PATCH v3 2/4] KVM: X86EMUL macro replacements: x86_emulate_insn() and its helpers Takuya Yoshikawa
@ 2010-02-12  7:00 ` Takuya Yoshikawa
  2010-02-12  7:02 ` [PATCH v3 4/4] KVM: Tiny fix: remove redundant prototype of load_pdptrs() Takuya Yoshikawa
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Takuya Yoshikawa @ 2010-02-12  7:00 UTC (permalink / raw)
  To: avi, mtosatti, gleb; +Cc: kvm

This patch makes non-X86EMUL_* family functions not to use
the variable rc.

Be sure that this changes nothing but makes the purpose of
the variable rc clearer.


Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
---
 arch/x86/kvm/emulate.c |   15 ++++++---------
 1 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 207075b..c803e57 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -2501,9 +2501,9 @@ twobyte_insn:
 	case 0x21: /* mov from dr to reg */
 		if (c->modrm_mod != 3)
 			goto cannot_emulate;
-		rc = emulator_get_dr(ctxt, c->modrm_reg, &c->regs[c->modrm_rm]);
-		if (rc)
+		if (emulator_get_dr(ctxt, c->modrm_reg, &c->regs[c->modrm_rm]))
 			goto cannot_emulate;
+		rc = X86EMUL_CONTINUE;
 		c->dst.type = OP_NONE;	/* no writeback */
 		break;
 	case 0x22: /* mov reg, cr */
@@ -2516,18 +2516,16 @@ twobyte_insn:
 	case 0x23: /* mov from reg to dr */
 		if (c->modrm_mod != 3)
 			goto cannot_emulate;
-		rc = emulator_set_dr(ctxt, c->modrm_reg,
-				     c->regs[c->modrm_rm]);
-		if (rc)
+		if (emulator_set_dr(ctxt, c->modrm_reg, c->regs[c->modrm_rm]))
 			goto cannot_emulate;
+		rc = X86EMUL_CONTINUE;
 		c->dst.type = OP_NONE;	/* no writeback */
 		break;
 	case 0x30:
 		/* wrmsr */
 		msr_data = (u32)c->regs[VCPU_REGS_RAX]
 			| ((u64)c->regs[VCPU_REGS_RDX] << 32);
-		rc = kvm_set_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], msr_data);
-		if (rc) {
+		if (kvm_set_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], msr_data)) {
 			kvm_inject_gp(ctxt->vcpu, 0);
 			c->eip = kvm_rip_read(ctxt->vcpu);
 		}
@@ -2536,8 +2534,7 @@ twobyte_insn:
 		break;
 	case 0x32:
 		/* rdmsr */
-		rc = kvm_get_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], &msr_data);
-		if (rc) {
+		if (kvm_get_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], &msr_data)) {
 			kvm_inject_gp(ctxt->vcpu, 0);
 			c->eip = kvm_rip_read(ctxt->vcpu);
 		} else {
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v3 4/4] KVM: Tiny fix: remove redundant prototype of load_pdptrs()
  2010-02-12  6:50 [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Takuya Yoshikawa
                   ` (2 preceding siblings ...)
  2010-02-12  7:00 ` [PATCH v3 3/4] KVM: Fix x86_emulate_insn() not to use the variable rc for non-X86EMUL values Takuya Yoshikawa
@ 2010-02-12  7:02 ` Takuya Yoshikawa
  2010-02-12  7:09 ` [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Gleb Natapov
  2010-02-17 13:32 ` Avi Kivity
  5 siblings, 0 replies; 7+ messages in thread
From: Takuya Yoshikawa @ 2010-02-12  7:02 UTC (permalink / raw)
  To: avi, mtosatti, gleb; +Cc: kvm

This patch removes redundant prototype of load_pdptrs().

I found load_pdptrs() twice in kvm_host.h. Let's remove one.


Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
---
 arch/x86/include/asm/kvm_host.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index f9a2f66..a60afbb 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -676,7 +676,6 @@ void kvm_mmu_invlpg(struct kvm_vcpu *vcpu, gva_t gva);
 void kvm_enable_tdp(void);
 void kvm_disable_tdp(void);
 
-int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3);
 int complete_pio(struct kvm_vcpu *vcpu);
 bool kvm_check_iopl(struct kvm_vcpu *vcpu);
 
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations"
  2010-02-12  6:50 [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Takuya Yoshikawa
                   ` (3 preceding siblings ...)
  2010-02-12  7:02 ` [PATCH v3 4/4] KVM: Tiny fix: remove redundant prototype of load_pdptrs() Takuya Yoshikawa
@ 2010-02-12  7:09 ` Gleb Natapov
  2010-02-17 13:32 ` Avi Kivity
  5 siblings, 0 replies; 7+ messages in thread
From: Gleb Natapov @ 2010-02-12  7:09 UTC (permalink / raw)
  To: Takuya Yoshikawa; +Cc: avi, mtosatti, kvm

On Fri, Feb 12, 2010 at 03:50:44PM +0900, Takuya Yoshikawa wrote:
> This is the rework of "Fix x86 emulator's fault propagations".
>   -- http://www.spinics.net/lists/kvm/msg28874.html
> 
> I read the review comments from Avi, Marcelo and Gleb and removed
> some parts which should be done with more care: descriptor related
> part and emulator_sys* part.
> 
> Now the contents is like this:
>   - patch 1: X86EMUL macro replacements: from do_fetch_insn_byte()
>              to x86_decode_insn()
>   - patch 2: X86EMUL macro replacements: x86_emulate_insn() and its
>              helpers
>   - patch 3: Fix x86_emulate_insn() not to use the variable rc for
>              non-X86EMUL values
>   - patch 4: Tiny fix: remove redundant prototype of load_pdptrs()
> 
> 
> Gleb, could you give me your Ack?
> 
Looks good to me. Thanks.

--
			Gleb.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations"
  2010-02-12  6:50 [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Takuya Yoshikawa
                   ` (4 preceding siblings ...)
  2010-02-12  7:09 ` [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Gleb Natapov
@ 2010-02-17 13:32 ` Avi Kivity
  5 siblings, 0 replies; 7+ messages in thread
From: Avi Kivity @ 2010-02-17 13:32 UTC (permalink / raw)
  To: Takuya Yoshikawa; +Cc: mtosatti, gleb, kvm

On 02/12/2010 08:50 AM, Takuya Yoshikawa wrote:
> This is the rework of "Fix x86 emulator's fault propagations".
>    -- http://www.spinics.net/lists/kvm/msg28874.html
>
> I read the review comments from Avi, Marcelo and Gleb and removed
> some parts which should be done with more care: descriptor related
> part and emulator_sys* part.
>
> Now the contents is like this:
>    - patch 1: X86EMUL macro replacements: from do_fetch_insn_byte()
>               to x86_decode_insn()
>    - patch 2: X86EMUL macro replacements: x86_emulate_insn() and its
>               helpers
>    - patch 3: Fix x86_emulate_insn() not to use the variable rc for
>               non-X86EMUL values
>    - patch 4: Tiny fix: remove redundant prototype of load_pdptrs()
>
>
>    

Applied all, thanks.

-- 
error compiling committee.c: too many arguments to function


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-02-17 13:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-12  6:50 [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Takuya Yoshikawa
2010-02-12  6:53 ` [PATCH v3 1/4] KVM: X86EMUL macro replacements: from do_fetch_insn_byte() to x86_decode_insn() Takuya Yoshikawa
2010-02-12  6:57 ` [PATCH v3 2/4] KVM: X86EMUL macro replacements: x86_emulate_insn() and its helpers Takuya Yoshikawa
2010-02-12  7:00 ` [PATCH v3 3/4] KVM: Fix x86_emulate_insn() not to use the variable rc for non-X86EMUL values Takuya Yoshikawa
2010-02-12  7:02 ` [PATCH v3 4/4] KVM: Tiny fix: remove redundant prototype of load_pdptrs() Takuya Yoshikawa
2010-02-12  7:09 ` [PATCH v3 0/4] KVM: rework of "Fix x86 emulator's fault propagations" Gleb Natapov
2010-02-17 13:32 ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox