MMU: fix cmpxchg8b emulation on i386 to use the right address
PATCH 1/1 MMU: fix cmpxchg8b emulation on i386 to use the right address
change the function parameter to use vaddr instead of addr to avoid a variable name redefinition from 9a5ee611ca79bec98e9d97e93f11df8083b8af6e that resulted in :
kernel/x86.c:1746: warning: passing argument 2 of 'vcpu->arch.mmu.gva_to_gpa' makes integer from pointer without a cast kernel/x86.c:1746: warning: 'addr' is used uninitialized in this function
--- arch/x86/kvm/x86.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
arch/x86/kvm/x86.c +3 -3
@@ -1722,7 +1722,7 @@ int emulator_write_emulated(unsigned long addr, }EXPORT_SYMBOL_GPL (emulator_write_emulated); -static int emulator_cmpxchg_emulated(unsigned long addr, +static int emulator_cmpxchg_emulated(unsigned long vaddr, const void *old, const void *new, unsigned int bytes,
@@ -1743,7 +1743,7 @@ static int emulator_cmpxchg_emulated(unsigned long addr,u64 val;down_read (¤t->mm->mmap_sem); - gpa = vcpu->arch.mmu.gva_to_gpa (vcpu, addr); + gpa = vcpu->arch.mmu.gva_to_gpa (vcpu, vaddr);if (gpa ==UNMAPPED_GVA || (gpa &PAGE_MASK ) ==APIC_DEFAULT_PHYS_BASE )
@@ -1763,7 +1763,7 @@ static int emulator_cmpxchg_emulated(unsigned long addr, }#endif -return emulator_write_emulated (addr, new, bytes, vcpu); +return emulator_write_emulated (vaddr, new, bytes, vcpu); }static unsigned long get_segment_base (struct kvm_vcpu *vcpu,int seg)
Signature · 7 lines
1.5.3.7 ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Quoted 2 lines · Carlo Marcelo Arenas Belon
change the function parameter to use vaddr instead of addr to avoid a variable name redefinition from
9a5ee611ca79bec98e9d97e93f11df8083b8af6e
this implementation has been already patched 6 times (not including this one) since it was originally introduced in Dec 12, including compilation and logic fixes as can be seen by :
24a673eb377069509e8dad5ff7fa146e363df739
eb9270cee7061e5a985eb9eac559270292b1d7ec
a5e8e8a4f7ddb211d856eb30e93e70af9d51b735
d5855a0ec163afd591f272e13e1f2c366794306f
9bfdd08f0a65e67d0842ca35516669bec523fbe0
91051a4955255317cab0d09d8849ec12db85f924
it was meant to fix some sort of bug on i386 because it wasn't atomic but with so many changes I am not sure if what it was meant to do has been really preserved, so I think it would be better if anyone with more experience and a better understanding of this patch could sheed some light on this.
Carlo
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Quoted 15 lines · Carlo Marcelo Arenas Belon
Quoted 2 lines · Carlo Marcelo Arenas Belon
change the function parameter to use vaddr instead of addr to avoid a variable name redefinition from
9a5ee611ca79bec98e9d97e93f11df8083b8af6ethis implementation has been already patched 6 times (not including this one) since it was originally introduced in Dec 12, including compilation and logic fixes as can be seen by :
24a673eb377069509e8dad5ff7fa146e363df739
eb9270cee7061e5a985eb9eac559270292b1d7ec
a5e8e8a4f7ddb211d856eb30e93e70af9d51b735
d5855a0ec163afd591f272e13e1f2c366794306f
9bfdd08f0a65e67d0842ca35516669bec523fbe0
91051a4955255317cab0d09d8849ec12db85f924
Quoted 4 lines
it was meant to fix some sort of bug on i386 because it wasn't atomic but with so many changes I am not sure if what it was meant to do has been really preserved, so I think it would be better if anyone with more experience and a better understanding of this patch could sheed some light on this.
It is OK now. The first patch was quite broken, thus so many fixes :(
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/