]> git.ipfire.org Git - thirdparty/qemu.git/commit
memory: fix limiting of translation at a page boundary
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 7 Feb 2014 14:47:46 +0000 (15:47 +0100)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Fri, 21 Feb 2014 06:36:00 +0000 (00:36 -0600)
commit819ddf7d1fbcb74ecab885dc35fea741c6316b17
tree87b7a16b87afeba3201549a1ca9415f29bf88ff7
parentec6428b598b599e385d70057f6dbecea9ad52455
memory: fix limiting of translation at a page boundary

Commit 360e607 (address_space_translate: do not cross page boundaries,
2014-01-30) broke MMIO accesses in cases where the section is shorter
than the full register width.  This can happen for example with the
Bochs DISPI registers, which are 16 bits wide but have only a 1-byte
long MemoryRegion (if you write to the "second byte" of the register
your access is discarded; it doesn't write only to half of the register).

Restrict the action of commit 360e607 to direct RAM accesses.  This
is enough for Xen, since MMIO will not go through the mapcache.

Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit a87f39543a9259f671c5413723311180ee2ad2a8)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
exec.c