<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 7, 2016 at 5:13 AM, Bogdan Purcareata <span dir="ltr"><<a href="mailto:bogdan.purcareata@nxp.com" target="_blank">bogdan.purcareata@nxp.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 07.04.2016 09:57, Bruce Ashfield wrote:<br>
> On Tue, Apr 5, 2016 at 11:48 AM, Bogdan Purcareata <<br>
> <a href="mailto:bogdan.purcareata@nxp.com">bogdan.purcareata@nxp.com</a>> wrote:<br>
><br>
>> Patch contains a more detailed description. Basically allows adding<br>
>> virtio-mmio<br>
>> block device to QEMU guests. Tested on ARM64.<br>
>><br>
>> Please apply on jethro branch.<br>
>><br>
><br>
> We don't want to create functionality on old branches that isn't also on<br>
> master.<br>
> Is there any reason why this wouldn't be applicable to master as well ?<br>
<br>
</span>Master delivers libvirt 1.3.2 [1] which has this patch included:<br>
<br>
[libvirt]$ git checkout v1.3.2 && git log --pretty=oneline | grep "Ignore<br>
virtio-mmio"<br>
d526e37bad2515cf91caa0e4ff3edaf41e45b5c2 Ignore virtio-mmio disks in<br>
qemuAssignDevicePCISlots()<br></blockquote><div><br><br></div><div>Great. Just what I was looking for .. I hadn't looked all the way down into the embedded <br>patch, where I see the info was included via the upstream status.<br><br></div><div>merged to jethro.<br><br></div><div>Bruce<br></div><div>Â </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
[1]<br>
<a href="https://git.yoctoproject.org/cgit/cgit.cgi/meta-virtualization/tree/recipes-extended/libvirt" rel="noreferrer" target="_blank">https://git.yoctoproject.org/cgit/cgit.cgi/meta-virtualization/tree/recipes-extended/libvirt</a><br>
<br>
Thank you,<br>
Bogdan P.<br>
<div class="HOEnZb"><div class="h5"><br>
>><br>
>> Signed-off-by: Bogdan Purcareata <<a href="mailto:bogdan.purcareata@nxp.com">bogdan.purcareata@nxp.com</a>><br>
>> ---<br>
>>Â Â ...io-mmio-disks-in-qemuAssignDevicePCISlots.patch | 81<br>
>> ++++++++++++++++++++++<br>
>>Â Â recipes-extended/libvirt/<a href="http://libvirt_1.2.19.bb" rel="noreferrer" target="_blank">libvirt_1.2.19.bb</a>Â Â Â Â Â |Â 1 +<br>
>>Â Â 2 files changed, 82 insertions(+)<br>
>>Â Â create mode 100644<br>
>> recipes-extended/libvirt/libvirt/Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch<br>
>><br>
>> diff --git<br>
>> a/recipes-extended/libvirt/libvirt/Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch<br>
>> b/recipes-extended/libvirt/libvirt/Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch<br>
>> new file mode 100644<br>
>> index 0000000..f0b7ab5<br>
>> --- /dev/null<br>
>> +++<br>
>> b/recipes-extended/libvirt/libvirt/Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch<br>
>> @@ -0,0 +1,81 @@<br>
>> +From d526e37bad2515cf91caa0e4ff3edaf41e45b5c2 Mon Sep 17 00:00:00 2001<br>
>> +From: Pavel Fedin <<a href="mailto:p.fedin@samsung.com">p.fedin@samsung.com</a>><br>
>> +Date: Wed, 9 Sep 2015 15:02:53 +0300<br>
>> +Subject: [PATCH] Ignore virtio-mmio disks in qemuAssignDevicePCISlots()<br>
>> +<br>
>> +Fixes the following error when attempting to add a disk with bus='virtio'<br>
>> +to a machine which actually supports virtio-mmio (caught with ARM virt):<br>
>> +<br>
>> +virtio disk cannot have an address of type 'virtio-mmio'<br>
>> +<br>
>> +The problem has been likely introduced by<br>
>> +e8d55172544c1fafe31a9e09346bdebca4f0d6f9. Before that<br>
>> +qemuAssignDevicePCISlots() was never called for ARM "virt" machine.<br>
>> +<br>
>> +Upstream-status: Accepted<br>
>> +[<br>
>> <a href="https://libvirt.org/git/?p=libvirt.git;a=commit;h=d526e37bad2515cf91caa0e4ff3edaf41e45b5c2" rel="noreferrer" target="_blank">https://libvirt.org/git/?p=libvirt.git;a=commit;h=d526e37bad2515cf91caa0e4ff3edaf41e45b5c2</a><br>
>> ]<br>
>> +<br>
>> +Signed-off-by: Pavel Fedin <<a href="mailto:p.fedin@samsung.com">p.fedin@samsung.com</a>><br>
>> +---<br>
>> + src/qemu/qemu_command.c | 11 +++++++++--<br>
>> + src/qemu/qemu_command.h |Â 1 +<br>
>> + 2 files changed, 10 insertions(+), 2 deletions(-)<br>
>> +<br>
>> +diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c<br>
>> +index b56670c..25f57f2 100644<br>
>> +--- a/src/qemu/qemu_command.c<br>
>> ++++ b/src/qemu/qemu_command.c<br>
>> +@@ -2261,7 +2261,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,<br>
>> +Â Â Â Â Â Â Â Â Â virDomainPCIAddressReserveNextSlot(addrs, &info, flags)<br>
>> < 0)<br>
>> +Â Â Â Â Â Â Â Â Â goto cleanup;<br>
>> +<br>
>> +-Â Â Â Â Â Â if (qemuAssignDevicePCISlots(def, addrs) < 0)<br>
>> ++Â Â Â Â Â Â if (qemuAssignDevicePCISlots(def, qemuCaps, addrs) < 0)<br>
>> +Â Â Â Â Â Â Â Â Â goto cleanup;<br>
>> +<br>
>> +Â Â Â Â Â Â Â for (i = 1; i < addrs->nbuses; i++) {<br>
>> +@@ -2294,7 +2294,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,<br>
>> +Â Â Â Â Â Â Â if (qemuValidateDevicePCISlotsChipsets(def, qemuCaps, addrs)<br>
>> < 0)<br>
>> +Â Â Â Â Â Â Â Â Â goto cleanup;<br>
>> +<br>
>> +-Â Â Â Â Â Â if (qemuAssignDevicePCISlots(def, addrs) < 0)<br>
>> ++Â Â Â Â Â Â if (qemuAssignDevicePCISlots(def, qemuCaps, addrs) < 0)<br>
>> +Â Â Â Â Â Â Â Â Â goto cleanup;<br>
>> +<br>
>> +Â Â Â Â Â Â Â for (i = 0; i < def->ncontrollers; i++) {<br>
>> +@@ -2426,6 +2426,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,<br>
>> +Â */<br>
>> + int<br>
>> + qemuAssignDevicePCISlots(virDomainDefPtr def,<br>
>> ++Â Â Â Â Â Â Â Â Â Â Â Â Â virQEMUCapsPtr qemuCaps,<br>
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â virDomainPCIAddressSetPtr addrs)<br>
>> + {<br>
>> +Â Â Â size_t i, j;<br>
>> +@@ -2618,6 +2619,12 @@ qemuAssignDevicePCISlots(virDomainDefPtr def,<br>
>> +Â Â Â Â Â Â Â VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW)<br>
>> +Â Â Â Â Â Â Â continue;<br>
>> +<br>
>> ++Â Â Â Â /* Also ignore virtio-mmio disks if our machine allows them */<br>
>> ++Â Â Â Â if (def->disks[i]->info.type ==<br>
>> ++Â Â Â Â Â Â VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO &&<br>
>> ++Â Â Â Â Â Â virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIRTIO_MMIO))<br>
>> ++Â Â Â Â Â Â continue;<br>
>> ++<br>
>> +Â Â Â Â Â if (def->disks[i]->info.type !=<br>
>> VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {<br>
>> +Â Â Â Â Â Â Â virReportError(VIR_ERR_CONFIG_UNSUPPORTED,<br>
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â _("virtio disk cannot have an address of type<br>
>> '%s'"),<br>
>> +diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h<br>
>> +index 767d31f..4aa7f2d 100644<br>
>> +--- a/src/qemu/qemu_command.h<br>
>> ++++ b/src/qemu/qemu_command.h<br>
>> +@@ -284,6 +284,7 @@ virDomainPCIAddressSetPtr<br>
>> qemuDomainPCIAddressSetCreate(virDomainDefPtr def,<br>
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â bool dryRun);<br>
>> +<br>
>> + int qemuAssignDevicePCISlots(virDomainDefPtr def,<br>
>> ++Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â virQEMUCapsPtr qemuCaps,<br>
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â virDomainPCIAddressSetPtr addrs);<br>
>> +<br>
>> + int qemuAssignDeviceAliases(virDomainDefPtr def, virQEMUCapsPtr<br>
>> qemuCaps);<br>
>> +--<br>
>> +1.9.1<br>
>> +<br>
>> diff --git a/recipes-extended/libvirt/<a href="http://libvirt_1.2.19.bb" rel="noreferrer" target="_blank">libvirt_1.2.19.bb</a><br>
>> b/recipes-extended/libvirt/<a href="http://libvirt_1.2.19.bb" rel="noreferrer" target="_blank">libvirt_1.2.19.bb</a><br>
>> index df53d59..774eea4 100644<br>
>> --- a/recipes-extended/libvirt/<a href="http://libvirt_1.2.19.bb" rel="noreferrer" target="_blank">libvirt_1.2.19.bb</a><br>
>> +++ b/recipes-extended/libvirt/<a href="http://libvirt_1.2.19.bb" rel="noreferrer" target="_blank">libvirt_1.2.19.bb</a><br>
>> @@ -33,6 +33,7 @@ SRC_URI = "<br>
>> <a href="http://libvirt.org/sources/libvirt-${PV}.tar.gz;name=libvirt" rel="noreferrer" target="_blank">http://libvirt.org/sources/libvirt-${PV}.tar.gz;name=libvirt</a> \<br>
>>Â Â Â Â Â Â Â file://libvirt-use-pkg-config-to-locate-libcap.patch \<br>
>>Â Â Â Â Â Â Â file://0001-to-fix-build-error.patch \<br>
>>Â Â Â Â Â Â Â file://Revert-build-add-prefix-to-SYSTEMD_UNIT_DIR.patch \<br>
>> +<br>
>>Â Â file://Ignore-virtio-mmio-disks-in-qemuAssignDevicePCISlots.patch \<br>
>>Â Â Â Â Â Â Â "<br>
>><br>
>>Â Â SRC_URI[libvirt.md5sum] = "bc3ab1ba5b6fabd2e4516c70ddd4d97c"<br>
>> --<br>
>> 1.9.1<br>
>><br>
>> --<br>
>> _______________________________________________<br>
>> meta-virtualization mailing list<br>
>> <a href="mailto:meta-virtualization@yoctoproject.org">meta-virtualization@yoctoproject.org</a><br>
>> <a href="https://lists.yoctoproject.org/listinfo/meta-virtualization" rel="noreferrer" target="_blank">https://lists.yoctoproject.org/listinfo/meta-virtualization</a><br>
>><br>
><br>
><br>
></div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end"</div>
</div></div>