On Wed, 2014-09-03 at 14:36 -0400, Bogdan Purcareata wrote: > This is done due to the fact that the kvm-openpic region_{add,del} callbacks > can be invoked for sections generated from other memory regions as well. These > callbacks should handle only requests for the kvm-openpic memory region. > > The patch fixes a bug on target-ppc occuring when the "e500-pci-bar0" memory > region is added. This memory region registers an alias to the "e500-ccsr" > memory > region, which further contains the "kvm-openpic" subregion. Due to this alias, > the kvm_openpic_region_add is called once more, with an offset within the > "e500-pci-bar" memory region. This generates the remapping of the > in-kernel MPIC at a wrong offset.
OK, so the problem is that we really do have the MPIC mapped in two locations (and the kernel API only lets us map one of them). It would be nice if the MemoryRegionSection struct indicated the alias being represented rather than needing to recalculate the non-aliased address. -Scott