Re: [PATCH] qemuDomainAttachDeviceLive: Check provided disk address

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 29, 2015 at 05:03:07PM +0200, Michal Privoznik wrote:
On 25.09.2015 14:45, Martin Kletzander wrote:
On Fri, Sep 25, 2015 at 06:41:44AM -0400, John Ferlan wrote:


On 09/25/2015 05:38 AM, Michal Privoznik wrote:
On 25.09.2015 11:36, Martin Kletzander wrote:
On Thu, Sep 24, 2015 at 05:43:08PM +0200, Michal Privoznik wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=1257844

Imagine an user who is trying to attach a disk to a domain with
the following XML:

 <disk type='block' device='disk'>
   <driver name='qemu' type='raw'/>
   <source dev='/dev/sr0'/>
   <target dev='vde' bus='virtio'/>
   <address type='drive' controller='0' bus='0' target='0' unit='0'/>
 </disk>

The XML is obviously wrong. It's trying to attach a virtio disk
onto non-PCI bus. We should forbid that.

Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
---
src/qemu/qemu_hotplug.c | 7 +++++++
1 file changed, 7 insertions(+)


How come this is not handled in qemuDomainAssignAddresses(), it
doesn't get called?  There's a check for exactly that in
qemuAssignDevicePCISlots().

Exactly! qemuAssignDevicePCISlots() is called only in case of --config.


Seems to me this may be more of a generic problem - a user providing the
wrong address type for the type of device. I have a recollection of

Yes, and since we have checks for those, it's confusing to me why
would qemuAssignDevicePCISlots() be called only with --config.  Can we
use that code which checks for more things already?  For example, the
here-missing virtio-mmio.

Yes and no. qemuDomainAssignAddresses() expects to see vm->def which
already has the device attached. Moreover, it not only works over all
devices in the domain (filling in all the missing addresses), but
possibly creating new controllers too (e.g. plugging new pci bridges if
running out of addresses on a bus).

Does anybody have a bright idea how this can be fixed apart from obvious
one - breaking whole address assignment code into parts and reassembling
it back together again?


Unfortunately, not.  Well, maybe the address allocation I was trying
to push as GSoC and/or Outreachy project could've fixed that, but
nobody was able to finish that, so we don't know =)

Michal

Attachment: signature.asc
Description: PGP signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]