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

Reply via email to