KVM: PPC: Book3S: Trim top 4 bits of physical address in RTAS code
authorPaul Mackerras <paulus@samba.org>
Mon, 24 Mar 2014 23:47:04 +0000 (10:47 +1100)
committerPaul Mackerras <paulus@samba.org>
Sat, 29 Mar 2014 08:58:23 +0000 (19:58 +1100)
commitb24f36f33ea088771c2bb7c09e84d0ddea35cf55
tree494c54ce7d7393b8b60bd84422b867b171c35356
parenta7d80d01c68ed7d3fbc7bcf4541e6fb7e6b87cd6
KVM: PPC: Book3S: Trim top 4 bits of physical address in RTAS code

The in-kernel emulation of RTAS functions needs to read the argument
buffer from guest memory in order to find out what function is being
requested.  The guest supplies the guest physical address of the buffer,
and on a real system the code that reads that buffer would run in guest
real mode.  In guest real mode, the processor ignores the top 4 bits
of the address specified in load and store instructions.  In order to
emulate that behaviour correctly, we need to mask off those bits
before calling kvm_read_guest() or kvm_write_guest().  This adds that
masking.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Acked-by: Scott Wood <scottwood@freescale.com>
arch/powerpc/kvm/book3s_rtas.c