From d8f24f75a8d37706e6ca58e95a2a749dafe163e7 Mon Sep 17 00:00:00 2001 From: Wen Congyang Date: Mon, 23 May 2011 11:22:54 +0800 Subject: [PATCH] the key of hash table should include the function value We save all used PCI address in the hash table. The key is generated by domain, bus and slot now. We will support multi function PCI device, so the key should be generated by domain, bus, slot and function. --- src/qemu/qemu_command.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 4e6824125a..7c92ed6113 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -684,10 +684,11 @@ static char *qemuPCIAddressAsString(virDomainDeviceInfoPtr dev) return NULL; } - if (virAsprintf(&addr, "%d:%d:%d", + if (virAsprintf(&addr, "%d:%d:%d.%d", dev->addr.pci.domain, dev->addr.pci.bus, - dev->addr.pci.slot) < 0) { + dev->addr.pci.slot, + dev->addr.pci.function) < 0) { virReportOOMError(); return NULL; } @@ -817,6 +818,7 @@ int qemuDomainPCIAddressReserveSlot(qemuDomainPCIAddressSetPtr addrs, dev.addr.pci.domain = 0; dev.addr.pci.bus = 0; dev.addr.pci.slot = slot; + dev.addr.pci.function = 0; return qemuDomainPCIAddressReserveAddr(addrs, &dev); } @@ -879,6 +881,7 @@ int qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs, maybe.addr.pci.domain = 0; maybe.addr.pci.bus = 0; maybe.addr.pci.slot = i; + maybe.addr.pci.function = 0; if (!(addr = qemuPCIAddressAsString(&maybe))) return -1; -- 2.47.3