Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolai Stange <nstange@suse.de>2018-05-03 13:41:30 +0200
committerMiroslav Benes <mbenes@suse.cz>2018-05-03 14:43:45 +0200
commit97a068204f20150051c4fc17dfbaf7b8db4faebf (patch)
tree518c27680a86de0b2ab93c83854d3c849c0365f6
parent75a5884b864cc69d13a4ffd2e90042967948c77f (diff)
bsc#1090869: fix indirect call to kgr_kvm_spurious_fault()
The inline asm of kgr____kvm_handle_fault_on_reboot() is broken in that it doesn't do a call to the address stored in kgr_kvm_spurious_fault, but a jmp. Fix this. Signed-off-by: Nicolai Stange <nstange@suse.de> Signed-off-by: Miroslav Benes <mbenes@suse.cz>
-rw-r--r--bsc1090869/kgr_patch_bsc1090869.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/bsc1090869/kgr_patch_bsc1090869.c b/bsc1090869/kgr_patch_bsc1090869.c
index 0cc68a0..e0c99e6 100644
--- a/bsc1090869/kgr_patch_bsc1090869.c
+++ b/bsc1090869/kgr_patch_bsc1090869.c
@@ -169,8 +169,8 @@ static inline int kgr_emulate_instruction(struct kvm_vcpu *vcpu,
"popq %%rax \n\t" \
"jne 668b \n\t" \
__ASM_SIZE(push) " $666b \n\t" \
- "pushq kgr_kvm_spurious_fault \n\t" \
- "ret\n\t" \
+ "movq kgr_kvm_spurious_fault, %%rax \n\t" \
+ "call *%%rax\n\t" \
".popsection \n\t" \
_ASM_EXTABLE(666b, 667b)