aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2013-01-23 17:20:43 +0000
committerAlexander Graf <agraf@suse.de>2013-01-25 22:02:55 +0100
commit1ea1ce8ac305d9e006bc8b0f5f3554793fd2fa43 (patch)
tree1c68ee65c185f709e5b9135c8bf34a0b5c51761e
parentcaae58cba07efec5f0616f568531c9dfaf1e9179 (diff)
downloadqemu-1ea1ce8ac305d9e006bc8b0f5f3554793fd2fa43.zip
qemu-1ea1ce8ac305d9e006bc8b0f5f3554793fd2fa43.tar.gz
qemu-1ea1ce8ac305d9e006bc8b0f5f3554793fd2fa43.tar.bz2
pseries: Adjust default VIO address allocations to play better with libvirt
Currently, if VIO devices for pseries don't have addresses explicitly allocated, they get automatically numbered from 0x1000. This is in the same general range that libvirt will typically assign VIO device addresses. That means that if there is a device libvirt doesn't know about, and it gets an address assigned before the libvirt assigned devices are processed, we can end up with an address conflict (qemu will abort with an error). While the real solution is to teach libvirt about the other devices, so it can correctly manage the whole allocation, this patch reduces the interim inconvenience by moving qemu allocations to a range that libvirt is less likely to conflict with. Because the guest gets the device addresses through the device tree, these addresses are truly arbitrary and can be changed without breaking guests. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r--hw/spapr_vio.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/spapr_vio.c b/hw/spapr_vio.c
index 2054219..34c9ca6 100644
--- a/hw/spapr_vio.c
+++ b/hw/spapr_vio.c
@@ -492,7 +492,7 @@ VIOsPAPRBus *spapr_vio_bus_init(void)
qbus = qbus_create(TYPE_SPAPR_VIO_BUS, dev, "spapr-vio");
bus = DO_UPCAST(VIOsPAPRBus, bus, qbus);
- bus->next_reg = 0x1000;
+ bus->next_reg = 0x71000000;
/* hcall-vio */
spapr_register_hypercall(H_VIO_SIGNAL, h_vio_signal);