Skip to contentSkip to conversation

kvm unit test fails to build on 32 bit systems

DISCUSSION Michael S. Tsirkin 2 participants 6 messages Nov 11, 2013 – Nov 18, 2013 KVM

lore
Share & tools
lore
#0 lore raw

x86/eventinj.c: Assembler messages:
x86/eventinj.c:151: Error: bad register name %rsp' x86/eventinj.c:152: Error: bad register name %rsp'

#1 lore raw
Quoted 4 lines · Michael S. Tsirkin

x86/eventinj.c: Assembler messages:
x86/eventinj.c:151: Error: bad register name %rsp' x86/eventinj.c:152: Error: bad register name %rsp'

How about that?

x86/eventinj.c +2 -2
index 3d36b37..9d4392c 100644
@@ -148,8 +148,8 @@ static void nmi_iret_isr(struct ex_regs *r)
 	s[2] = read_rflags();
 	s[1] = read_cs();
 	s[0] = after_iret_addr = (unsigned long)&&after_iret;
-	asm ("mov %%rsp, %0\n\t"
-	     "mov %1, %%rsp\n\t"
+	asm ("mov %%" R "sp, %0\n\t"
+	     "mov %1, %%" R "sp\n\t"
 	     "outl %2, $0xe4\n\t" /* flush stack page */
 #ifdef __x86_64__
 	     "iretq\n\t"

--
Gleb.

author Tested-by
#2 lore raw
Quoted 6 lines · Gleb Natapov
Quoted 4 lines · Michael S. Tsirkin

x86/eventinj.c: Assembler messages:
x86/eventinj.c:151: Error: bad register name %rsp' x86/eventinj.c:152: Error: bad register name %rsp'

How about that?

works for me.

Quoted 17 lines
x86/eventinj.c +2 -3
index 3d36b37..9d4392c 100644
@@ -148,8 +148,8 @@ static void nmi_iret_isr(struct ex_regs *r)
 	s[2] = read_rflags();
 	s[1] = read_cs();
 	s[0] = after_iret_addr = (unsigned long)&&after_iret;
-	asm ("mov %%rsp, %0\n\t"
-	     "mov %1, %%rsp\n\t"
+	asm ("mov %%" R "sp, %0\n\t"
+	     "mov %1, %%" R "sp\n\t"
 	     "outl %2, $0xe4\n\t" /* flush stack page */
 #ifdef __x86_64__
 	     "iretq\n\t"
--

Gleb.

#3 lore raw
Quoted 6 lines · Michael S. Tsirkin
Quoted 5 lines · Gleb Natapov
Quoted 4 lines · Michael S. Tsirkin

x86/eventinj.c: Assembler messages:
x86/eventinj.c:151: Error: bad register name %rsp' x86/eventinj.c:152: Error: bad register name %rsp'

Quoted 8 lines
Quoted 1 line

How about that?

works for me.

Quoted 9 lines
Quoted 9 lines
x86/eventinj.c +0 -1
index 3d36b37..9d4392c 100644
@@ -148,8 +148,8 @@ static void nmi_iret_isr(struct ex_regs *r)
 	s[2] = read_rflags();
 	s[1] = read_cs();
 	s[0] = after_iret_addr = (unsigned long)&&after_iret;
-	asm ("mov %%rsp, %0\n\t"
Quoted 8 lines
Quoted 8 lines
x86/eventinj.c +2 -2
-	     "mov %1, %%rsp\n\t"
+	asm ("mov %%" R "sp, %0\n\t"
+	     "mov %1, %%" R "sp\n\t"
 	     "outl %2, $0xe4\n\t" /* flush stack page */
 #ifdef __x86_64__
 	     "iretq\n\t"
--

Gleb.

--
Gleb.

#4 lore raw
Quoted 10 lines · Gleb Natapov
Quoted 9 lines · Michael S. Tsirkin
Quoted 6 lines · Gleb Natapov
Quoted 4 lines · Michael S. Tsirkin

x86/eventinj.c: Assembler messages:
x86/eventinj.c:151: Error: bad register name %rsp' x86/eventinj.c:152: Error: bad register name %rsp'

How about that?

Quoted 7 lines
Quoted 5 lines

works for me.

Can this be applied please?

Quoted 20 lines
Quoted 9 lines
Quoted 9 lines
x86/eventinj.c +0 -1
index 3d36b37..9d4392c 100644
@@ -148,8 +148,8 @@ static void nmi_iret_isr(struct ex_regs *r)
 	s[2] = read_rflags();
 	s[1] = read_cs();
 	s[0] = after_iret_addr = (unsigned long)&&after_iret;
-	asm ("mov %%rsp, %0\n\t"
Quoted 8 lines
Quoted 8 lines
x86/eventinj.c +2 -2
-	     "mov %1, %%rsp\n\t"
+	asm ("mov %%" R "sp, %0\n\t"
+	     "mov %1, %%" R "sp\n\t"
 	     "outl %2, $0xe4\n\t" /* flush stack page */
 #ifdef __x86_64__
 	     "iretq\n\t"
--

Gleb.

--
Gleb.

#5 lore raw
Quoted 13 lines · Michael S. Tsirkin
Quoted 12 lines · Gleb Natapov
Quoted 11 lines · Michael S. Tsirkin
Quoted 6 lines · Gleb Natapov
Quoted 4 lines · Michael S. Tsirkin

x86/eventinj.c: Assembler messages:
x86/eventinj.c:151: Error: bad register name %rsp' x86/eventinj.c:152: Error: bad register name %rsp'

How about that?

works for me.

Quoted 8 lines
Quoted 5 lines
Quoted 3 lines

Can this be applied please?

I applied, but haven't pushed. Will do.

Quoted 12 lines
Quoted 12 lines
Quoted 12 lines
Quoted 12 lines
x86/eventinj.c +2 -2
index 3d36b37..9d4392c 100644
@@ -148,8 +148,8 @@ static void nmi_iret_isr(struct ex_regs *r)
 	s[2] = read_rflags();
 	s[1] = read_cs();
 	s[0] = after_iret_addr = (unsigned long)&&after_iret;
-	asm ("mov %%rsp, %0\n\t"
-	     "mov %1, %%rsp\n\t"
+	asm ("mov %%" R "sp, %0\n\t"
+	     "mov %1, %%" R "sp\n\t"
Quoted 8 lines
Quoted 8 lines
Quoted 5 lines
Quoted 5 lines
x86/eventinj.c +0 -1
 	     "outl %2, $0xe4\n\t" /* flush stack page */
 #ifdef __x86_64__
 	     "iretq\n\t"
--

Gleb.

--
Gleb.

--
Gleb.