Skip to content

Commit

Permalink
pseries: Adjust default VIO address allocations to play better with l…
Browse files Browse the repository at this point in the history
…ibvirt

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>
  • Loading branch information
dgibson authored and agraf committed Jan 25, 2013
1 parent caae58c commit 1ea1ce8
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion hw/spapr_vio.c
Expand Up @@ -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);
Expand Down

0 comments on commit 1ea1ce8

Please sign in to comment.