v6: - Applied Paul's code suggestion to fix endianess - Moved kvmppc_get_vsr_dword_offset() back to #ifdef CONFIG_VSX v5: - Fixed the mask off of the effective address v4: - Changed KVM_MMIO_REG_VMX to 0xc0 because there are 64 VSX registers v3: - Added Reported-by in the commit message v2: - kvmppc_get_vsr_word_offset() moved back to its original place - EA AND ~0xF, following ISA. - fixed BE/LE cases TESTS: For testing purposes I wrote a small program that performs stvx/lvx using the program's virtual memory and using MMIO. Load/Store into virtual memory is the model I use to check if MMIO results are correct (because only MMIO is emulated by KVM). Results: HOST LE - GUEST BE address: 0x10034850010 0x21436587bbbbaaaa4444555578563412 io_address: 0x3fff89a20000 0x21436587bbbbaaaa4444555578563412 HOST LE - GUEST LE address: 0x10033a20010 0x1234567855554444aaaabbbb87654321 io_address: 0x3fffb5380000 0x1234567855554444aaaabbbb87654321 HOST BE - GUEST BE address: 0x1002c4a0010 0x21436587bbbbaaaa4444555578563412 io_address: 0x3ffface40000 0x21436587bbbbaaaa4444555578563412 HOST BR - GUEST LE address: 0x100225e0010 0x1234567855554444aaaabbbb87654321 io_address: 0x3fff7fcb0000 0x1234567855554444aaaabbbb87654321 This patch implements MMIO emulation for two instructions: lvx and stvx. Jose Ricardo Ziviani (1): KVM: PPC: Book3S: Add MMIO emulation for VMX instructions arch/powerpc/include/asm/kvm_host.h | 2 + arch/powerpc/include/asm/kvm_ppc.h | 4 + arch/powerpc/include/asm/ppc-opcode.h | 6 ++ arch/powerpc/kvm/emulate_loadstore.c | 34 ++++++++ arch/powerpc/kvm/powerpc.c | 150 ++++++++++++++++++++++++++++++++++ 5 files changed, 196 insertions(+) -- 2.14.3 -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html