mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-12 15:52:55 +00:00
virpci: Allow greater PCI domain value in virPCIDeviceAddressIsValid
There is no restriction on maximum value of PCI domain. In fact, Linux kernel uses plain atomic inc when assigning PCI domains: drivers/pci/pci.c:static int pci_get_new_domain_nr(void) drivers/pci/pci.c-{ drivers/pci/pci.c- return atomic_inc_return(&__domain_nr); drivers/pci/pci.c-} Of course, this function is called only if kernel was compiled without PCI domain support or ACPI did not provide PCI domain. However, QEMU still has the same restriction as us: in set_pci_host_devaddr() QEMU checks if domain isn't greater than 0xffff. But one can argue that that's a QEMU limitation. We still want to be able to cope with other hypervisors that don't have this limitation (possibly). Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
9b332820f3
commit
d19c21429f
@ -324,7 +324,7 @@
|
|||||||
</define>
|
</define>
|
||||||
|
|
||||||
<define name="pciDomain">
|
<define name="pciDomain">
|
||||||
<ref name="uint16"/>
|
<ref name="uint32"/>
|
||||||
</define>
|
</define>
|
||||||
<define name="pciBus">
|
<define name="pciBus">
|
||||||
<ref name="uint8"/>
|
<ref name="uint8"/>
|
||||||
|
@ -1668,7 +1668,7 @@ bool
|
|||||||
virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr,
|
virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr,
|
||||||
bool report)
|
bool report)
|
||||||
{
|
{
|
||||||
if (addr->domain > 0xFFFF) {
|
if (addr->domain > 0xFFFFFFFF) {
|
||||||
if (report)
|
if (report)
|
||||||
virReportError(VIR_ERR_XML_ERROR,
|
virReportError(VIR_ERR_XML_ERROR,
|
||||||
_("Invalid PCI address domain='0x%x', "
|
_("Invalid PCI address domain='0x%x', "
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
<interface type='user'>
|
<interface type='user'>
|
||||||
<mac address='00:11:22:33:44:55'/>
|
<mac address='00:11:22:33:44:55'/>
|
||||||
<model type='rtl8139'/>
|
<model type='rtl8139'/>
|
||||||
<address type='pci' domain='0x10000' bus='0x00' slot='0x05' function='0x0'/>
|
<address type='pci' domain='0x0000' bus='0x100' slot='0x05' function='0x0'/>
|
||||||
</interface>
|
</interface>
|
||||||
<memballoon model='none'/>
|
<memballoon model='none'/>
|
||||||
</devices>
|
</devices>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user