On Fri, Feb 07, 2014 at 02:56:48PM +0000, Stefano Stabellini wrote: > On Fri, 7 Feb 2014, Paolo Bonzini wrote: > > 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-ayl...@ilande.co.uk> > > Cc: qemu-sta...@nongnu.org > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > > The patch looks OK to me. > Anthony has just left for a week of vacation and he is the only one able > to reproduce the bug. > Given that we might want to unbreak qemu ppc as soon as possible, you > can go ahead with the patch anyway. In the worst case, if it turns out > that it breaks Xen again, we can fix it with an incremental change later. > > > > v1->v2: also revert the change in the call to > > address_space_translate_internal. Removed Anthony's > > Tested-by to be safe.
After a quick test, this patch works fine with Xen. -- Anthony PERARD