On Fri, May 27, 2011 at 06:20:41PM +0800, Wen Congyang wrote:
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 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index ef2d002..4ca6fe3 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;
ACK,
If we want to be really pedantic, this would be merged with patch 4, so
we don't have a functionality regression at this point in the bisect,
but it isn't really too important.
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|