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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list