Skip to contentSkip to conversation

KVM - Fix hypercall arguments

PATCH Applied Jeff Dike 3 participants 3 messages Jul 16, 2007 – Jul 17, 2007 KVM

lore
Share & tools
lore

Jeff Dike

author
#0 lore raw

PATCH 2/3 KVM - Fix hypercall arguments

It looks like kvm_hypercall is trying to match the system call convention and mixed up the call number and first argument in the 32-bit case.

--

 drivers/kvm/kvm_main.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/kvm/kvm_main.c +2 -2
Index: kvm/drivers/kvm/kvm_main.c
===================================================================
@@ -1351,8 +1351,8 @@ int kvm_hypercall(struct kvm_vcpu *vcpu,
 	} else
 #endif
 	{
-		nr = vcpu->regs[VCPU_REGS_RBX] & -1u;
-		a0 = vcpu->regs[VCPU_REGS_RAX] & -1u;
+		nr = vcpu->regs[VCPU_REGS_RAX] & -1u;
+		a0 = vcpu->regs[VCPU_REGS_RBX] & -1u;
 		a1 = vcpu->regs[VCPU_REGS_RCX] & -1u;
 		a2 = vcpu->regs[VCPU_REGS_RDX] & -1u;
 		a3 = vcpu->regs[VCPU_REGS_RSI] & -1u;

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/

#1 lore raw
Quoted 15 lines · Jeff Dike

It looks like kvm_hypercall is trying to match the system call convention and mixed up the call number and first argument in the 32-bit case.

--

 drivers/kvm/kvm_main.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: kvm/drivers/kvm/kvm_main.c
===================================================================

drivers/kvm/kvm_main.c int kvm_hypercall(struct kvm_vcpu *vcpu, · line 1358

Quoted 10 lines
drivers/kvm/kvm_main.c +2 -2
@@ -1351,8 +1351,8 @@ int kvm_hypercall(struct kvm_vcpu *vcpu,
 	} else
 #endif
 	{
-		nr = vcpu->regs[VCPU_REGS_RBX] & -1u;
-		a0 = vcpu->regs[VCPU_REGS_RAX] & -1u;
+		nr = vcpu->regs[VCPU_REGS_RAX] & -1u;
+		a0 = vcpu->regs[VCPU_REGS_RBX] & -1u;
 		a1 = vcpu->regs[VCPU_REGS_RCX] & -1u;
 		a2 = vcpu->regs[VCPU_REGS_RDX] & -1u;
 		a3 = vcpu->regs[VCPU_REGS_RSI] & -1u;

Anthony? I think you were hacking this area?

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
#2 lore raw
Quoted 22 lines · Avi Kivity
Quoted 20 lines · Jeff Dike

It looks like kvm_hypercall is trying to match the system call convention and mixed up the call number and first argument in the 32-bit case.

--

 drivers/kvm/kvm_main.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: kvm/drivers/kvm/kvm_main.c
===================================================================

drivers/kvm/kvm_main.c +1 -2
@@ -1351,8 +1351,8 @@ int kvm_hypercall(struct kvm_vcpu *vcpu,
 	} else
 #endif
 	{
-		nr = vcpu->regs[VCPU_REGS_RBX] & -1u;
-		a0 = vcpu->regs[VCPU_REGS_RAX] & -1u;
+		nr = vcpu->regs[VCPU_REGS_RAX] & -1u;
Quoted 9 lines

drivers/kvm/kvm_main.c int kvm_hypercall(struct kvm_vcpu *vcpu, · line 1358

Quoted 6 lines
drivers/kvm/kvm_main.c +1 -0
+		a0 = vcpu->regs[VCPU_REGS_RBX] & -1u;
 		a1 = vcpu->regs[VCPU_REGS_RCX] & -1u;
 		a2 = vcpu->regs[VCPU_REGS_RDX] & -1u;
 		a3 = vcpu->regs[VCPU_REGS_RSI] & -1u;

Anthony? I think you were hacking this area?

I make a similar change in my series.

Regards,

Anthony Liguori

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/