提交 d8f24f75 编写于 作者: W Wen Congyang

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.
上级 cb6ea85b
...@@ -684,10 +684,11 @@ static char *qemuPCIAddressAsString(virDomainDeviceInfoPtr dev) ...@@ -684,10 +684,11 @@ static char *qemuPCIAddressAsString(virDomainDeviceInfoPtr dev)
return NULL; return NULL;
} }
if (virAsprintf(&addr, "%d:%d:%d", if (virAsprintf(&addr, "%d:%d:%d.%d",
dev->addr.pci.domain, dev->addr.pci.domain,
dev->addr.pci.bus, dev->addr.pci.bus,
dev->addr.pci.slot) < 0) { dev->addr.pci.slot,
dev->addr.pci.function) < 0) {
virReportOOMError(); virReportOOMError();
return NULL; return NULL;
} }
...@@ -817,6 +818,7 @@ int qemuDomainPCIAddressReserveSlot(qemuDomainPCIAddressSetPtr addrs, ...@@ -817,6 +818,7 @@ int qemuDomainPCIAddressReserveSlot(qemuDomainPCIAddressSetPtr addrs,
dev.addr.pci.domain = 0; dev.addr.pci.domain = 0;
dev.addr.pci.bus = 0; dev.addr.pci.bus = 0;
dev.addr.pci.slot = slot; dev.addr.pci.slot = slot;
dev.addr.pci.function = 0;
return qemuDomainPCIAddressReserveAddr(addrs, &dev); return qemuDomainPCIAddressReserveAddr(addrs, &dev);
} }
...@@ -879,6 +881,7 @@ int qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs, ...@@ -879,6 +881,7 @@ int qemuDomainPCIAddressSetNextAddr(qemuDomainPCIAddressSetPtr addrs,
maybe.addr.pci.domain = 0; maybe.addr.pci.domain = 0;
maybe.addr.pci.bus = 0; maybe.addr.pci.bus = 0;
maybe.addr.pci.slot = i; maybe.addr.pci.slot = i;
maybe.addr.pci.function = 0;
if (!(addr = qemuPCIAddressAsString(&maybe))) if (!(addr = qemuPCIAddressAsString(&maybe)))
return -1; return -1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册