
On Thu, 2018-06-14 at 22:32 +0200, Lubomir Rintel wrote: [...]
+static void +qemuDomainAssignRISCVVirtioMMIOAddresses(virDomainDefPtr def, + virQEMUCapsPtr qemuCaps) +{ + if (!ARCH_IS_RISCV(def->os.arch)) + return; + + if (STRNEQ(def->os.machine, "virt")) + return;
This will stop working the moment QEMU introduces versioned machine types for RISC-V, which makes it not very future proof. You should instead introduce (in a separate, earlier patch) qemuDomainIsRISCVVirt() qemuDomainMachineIsRISCVVirt() functions modeled after the Arm equivalent, and use the former here. [...]
@@ -2940,6 +2957,8 @@ qemuDomainAssignAddresses(virDomainDefPtr def,
qemuDomainAssignARMVirtioMMIOAddresses(def, qemuCaps);
+ qemuDomainAssignRISCVVirtioMMIOAddresses(def, qemuCaps);
We should have a qemuDomainAssignVirtioMMIOAddresses() wrapper that calls both the Arm and RISC-V variants, and call that one from qemuDomainAssignAddresses(). You can introduce and start using the wrapper in a separate patch; then, in this one, you can add the RISC-V variant and modify the wrapper so that it calls it in addition to the Arm variant. Everything else looks good. -- Andrea Bolognani / Red Hat / Virtualization