libvirt: xen: never use type=ioemu for vif definitions
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu |
Fix Released
|
Medium
|
Stefan Bader |
Bug Description
This is a speciality (or bug) in the Xen xm stack. Network (vif) definitions can have a type=ioemu argument to indicate the device should be emulated. In fact it does create an emulated device and a paravirt device for anything but type=netfront. Then the guest will unplug the emulated device if it can handle a pv device.
The code currently does have a special case when the vif definition does not specify a model, but the same is required for definitions for anything but netfront. Otherwise the emulated device is not functional after the emulated one gets unplugged.
I tested the attached change on my precise xen host and with e1000 as model. Before the change hypervisor default (which already omitted the type=ioemu) would work but e1000 came up without working network (MAC address all 0). After the change the e1000 case worked as well.
tags: | added: patch |
Unfortunately forgot the "closes", so it hasn't been automatically set to fix released.