All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] KVM: PPC: paravirt: Avoid patching paravirt template code
@ 2011-11-23 10:05 Liu Yu
  2011-11-28 17:32 ` [PATCH] KVM: PPC: paravirt: Avoid patching paravirt template Scott Wood
  0 siblings, 1 reply; 2+ messages in thread
From: Liu Yu @ 2011-11-23 10:05 UTC (permalink / raw)
  To: kvm-ppc

Currently we patch the whole code include paravirt template code.
This doesn't lead into issue for now,
but it makes some previlege instructions branch to paravirt code twice.

Signed-off-by: Liu Yu <yu.liu@freescale.com>
---
 arch/powerpc/kernel/kvm.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/kernel/kvm.c b/arch/powerpc/kernel/kvm.c
index 3953fbd..485748c 100644
--- a/arch/powerpc/kernel/kvm.c
+++ b/arch/powerpc/kernel/kvm.c
@@ -171,6 +171,10 @@ static void kvm_patch_ins_mtmsrd(u32 *inst, u32 rt)
 	if (!p)
 		return;
 
+	if ((inst > kvm_emulate_mtmsrd) &&
+	    (inst < kvm_emulate_mtmsrd + kvm_emulate_mtmsrd_len))
+		return;
+
 	/* Find out where we are and put everything there */
 	distance_start = (ulong)p - (ulong)inst;
 	next_inst = ((ulong)inst + 4);
@@ -220,6 +224,11 @@ static void kvm_patch_ins_mtmsr(u32 *inst, u32 rt)
 	int distance_end;
 	ulong next_inst;
 
+	if ((inst > kvm_emulate_mtmsr) &&
+	    (inst < kvm_emulate_mtmsr + kvm_emulate_mtmsr_len))
+		return;
+
+
 	p = kvm_alloc(kvm_emulate_mtmsr_len * 4);
 	if (!p)
 		return;
@@ -281,6 +290,10 @@ static void kvm_patch_ins_wrtee(u32 *inst, u32 rt, int imm_one)
 	int distance_end;
 	ulong next_inst;
 
+	if ((inst > kvm_emulate_wrtee) &&
+	    (inst < kvm_emulate_wrtee + kvm_emulate_wrtee_len))
+		return;
+
 	p = kvm_alloc(kvm_emulate_wrtee_len * 4);
 	if (!p)
 		return;
@@ -338,6 +351,10 @@ static void kvm_patch_ins_wrteei_0(u32 *inst)
 	int distance_end;
 	ulong next_inst;
 
+	if ((inst > kvm_emulate_wrteei_0) &&
+	    (inst < kvm_emulate_wrteei_0 + kvm_emulate_wrteei_0_len))
+		return;
+
 	p = kvm_alloc(kvm_emulate_wrteei_0_len * 4);
 	if (!p)
 		return;
-- 
1.6.4



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

end of thread, other threads:[~2011-11-28 17:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-23 10:05 [PATCH] KVM: PPC: paravirt: Avoid patching paravirt template code Liu Yu
2011-11-28 17:32 ` [PATCH] KVM: PPC: paravirt: Avoid patching paravirt template Scott Wood

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.