[libvirt] [PATCH 09/10] Convert PCI device assignment over to -device
Daniel Veillard
veillard at redhat.com
Thu Dec 17 09:18:39 UTC 2009
On Tue, Dec 15, 2009 at 03:14:49PM +0000, Daniel P. Berrange wrote:
> The old syntax is
>
> -pcidevice host=BUS:SLOT:FUNCTION
>
> The new syntax is
>
> -device pci-assign,host=BUS:SLOT:FUNCTION
> ---
> src/qemu/qemu_conf.c | 26 +++++++++++++++-----------
> 1 files changed, 15 insertions(+), 11 deletions(-)
>
> diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
> index ac322a7..f8c6ae6 100644
> --- a/src/qemu/qemu_conf.c
> +++ b/src/qemu/qemu_conf.c
> @@ -2852,22 +2852,26 @@ int qemudBuildCommandLine(virConnectPtr conn,
> /* PCI */
> if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
> hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
> - if (!(qemuCmdFlags & QEMUD_CMD_FLAG_PCIDEVICE)) {
> + if (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) {
> + ADD_ARG_LIT("-device");
> + ret = virAsprintf(&pcidev, "pci-assign,host=%.2x:%.2x.%.1x",
> + hostdev->source.subsys.u.pci.bus,
> + hostdev->source.subsys.u.pci.slot,
> + hostdev->source.subsys.u.pci.function);
> + } else if (qemuCmdFlags & QEMUD_CMD_FLAG_PCIDEVICE) {
> + ADD_ARG_LIT("-pcidevice");
> + ret = virAsprintf(&pcidev, "host=%.2x:%.2x.%.1x",
> + hostdev->source.subsys.u.pci.bus,
> + hostdev->source.subsys.u.pci.slot,
> + hostdev->source.subsys.u.pci.function);
> + } else {
> qemudReportError(conn, NULL, NULL, VIR_ERR_NO_SUPPORT, "%s",
> _("PCI device assignment is not supported by this version of qemu"));
> goto error;
> }
> - ret = virAsprintf(&pcidev, "host=%.2x:%.2x.%.1x",
> - hostdev->source.subsys.u.pci.bus,
> - hostdev->source.subsys.u.pci.slot,
> - hostdev->source.subsys.u.pci.function);
> - if (ret < 0) {
> - pcidev = NULL;
> + if (ret < 0)
> goto no_memory;
> - }
> - ADD_ARG_LIT("-pcidevice");
> - ADD_ARG_LIT(pcidev);
> - VIR_FREE(pcidev);
> + ADD_ARG(pcidev);
> }
> }
>
ACK,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list