|
|
6d3351 |
From 9d0d053dc7f8af8ebb3c7fbb3a11335e4b50717b Mon Sep 17 00:00:00 2001
|
|
|
6d3351 |
Message-Id: <9d0d053dc7f8af8ebb3c7fbb3a11335e4b50717b@dist-git>
|
|
|
6d3351 |
From: Andrea Bolognani <abologna@redhat.com>
|
|
|
6d3351 |
Date: Mon, 17 Jul 2017 12:08:58 +0200
|
|
|
6d3351 |
Subject: [PATCH] conf: Move virDomainPCIAddressBusIsFullyReserved()
|
|
|
6d3351 |
|
|
|
6d3351 |
This function was private to the QEMU driver and was,
|
|
|
6d3351 |
accordingly, called qemuDomainPCIBusFullyReserved().
|
|
|
6d3351 |
|
|
|
6d3351 |
However the function is really not QEMU-specific at
|
|
|
6d3351 |
all, so it makes sense to move it closer to the
|
|
|
6d3351 |
virDomainPCIAddressBus struct it operates on.
|
|
|
6d3351 |
|
|
|
6d3351 |
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
|
|
|
6d3351 |
Reviewed-by: Laine Stump <laine@laine.org>
|
|
|
6d3351 |
(cherry picked from commit c79f97c83ce1421f79756a9a344e8e77ceeeb1d8)
|
|
|
6d3351 |
|
|
|
6d3351 |
Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1431193
|
|
|
6d3351 |
|
|
|
6d3351 |
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
|
|
|
6d3351 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
6d3351 |
---
|
|
|
6d3351 |
src/conf/domain_addr.c | 14 ++++++++++++++
|
|
|
6d3351 |
src/conf/domain_addr.h | 3 +++
|
|
|
6d3351 |
src/libvirt_private.syms | 1 +
|
|
|
6d3351 |
src/qemu/qemu_domain_address.c | 15 +--------------
|
|
|
6d3351 |
4 files changed, 19 insertions(+), 14 deletions(-)
|
|
|
6d3351 |
|
|
|
6d3351 |
diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c
|
|
|
6d3351 |
index 639168effa..0ae1ed93af 100644
|
|
|
6d3351 |
--- a/src/conf/domain_addr.c
|
|
|
6d3351 |
+++ b/src/conf/domain_addr.c
|
|
|
6d3351 |
@@ -355,6 +355,20 @@ virDomainPCIAddressBusSetModel(virDomainPCIAddressBusPtr bus,
|
|
|
6d3351 |
}
|
|
|
6d3351 |
|
|
|
6d3351 |
|
|
|
6d3351 |
+bool
|
|
|
6d3351 |
+virDomainPCIAddressBusIsFullyReserved(virDomainPCIAddressBusPtr bus)
|
|
|
6d3351 |
+{
|
|
|
6d3351 |
+ size_t i;
|
|
|
6d3351 |
+
|
|
|
6d3351 |
+ for (i = bus->minSlot; i <= bus->maxSlot; i++) {
|
|
|
6d3351 |
+ if (!bus->slot[i].functions)
|
|
|
6d3351 |
+ return false;
|
|
|
6d3351 |
+ }
|
|
|
6d3351 |
+
|
|
|
6d3351 |
+ return true;
|
|
|
6d3351 |
+}
|
|
|
6d3351 |
+
|
|
|
6d3351 |
+
|
|
|
6d3351 |
/* Ensure addr fits in the address set, by expanding it if needed
|
|
|
6d3351 |
*
|
|
|
6d3351 |
* Return value:
|
|
|
6d3351 |
diff --git a/src/conf/domain_addr.h b/src/conf/domain_addr.h
|
|
|
6d3351 |
index f884b8af2b..c90a335919 100644
|
|
|
6d3351 |
--- a/src/conf/domain_addr.h
|
|
|
6d3351 |
+++ b/src/conf/domain_addr.h
|
|
|
6d3351 |
@@ -141,6 +141,9 @@ int virDomainPCIAddressBusSetModel(virDomainPCIAddressBusPtr bus,
|
|
|
6d3351 |
virDomainControllerModelPCI model)
|
|
|
6d3351 |
ATTRIBUTE_NONNULL(1);
|
|
|
6d3351 |
|
|
|
6d3351 |
+bool virDomainPCIAddressBusIsFullyReserved(virDomainPCIAddressBusPtr bus)
|
|
|
6d3351 |
+ ATTRIBUTE_NONNULL(1);
|
|
|
6d3351 |
+
|
|
|
6d3351 |
bool virDomainPCIAddressSlotInUse(virDomainPCIAddressSetPtr addrs,
|
|
|
6d3351 |
virPCIDeviceAddressPtr addr)
|
|
|
6d3351 |
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
|
|
6d3351 |
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
|
|
|
6d3351 |
index 9c596e3f1c..7876ffb208 100644
|
|
|
6d3351 |
--- a/src/libvirt_private.syms
|
|
|
6d3351 |
+++ b/src/libvirt_private.syms
|
|
|
6d3351 |
@@ -105,6 +105,7 @@ virDomainCCWAddressSetFree;
|
|
|
6d3351 |
virDomainCCWAddressValidate;
|
|
|
6d3351 |
virDomainGetBlkioParametersAssignFromDef;
|
|
|
6d3351 |
virDomainPCIAddressAsString;
|
|
|
6d3351 |
+virDomainPCIAddressBusIsFullyReserved;
|
|
|
6d3351 |
virDomainPCIAddressBusSetModel;
|
|
|
6d3351 |
virDomainPCIAddressEnsureAddr;
|
|
|
6d3351 |
virDomainPCIAddressFlagsCompatible;
|
|
|
6d3351 |
diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c
|
|
|
6d3351 |
index 3da6b7369d..ff57edb564 100644
|
|
|
6d3351 |
--- a/src/qemu/qemu_domain_address.c
|
|
|
6d3351 |
+++ b/src/qemu/qemu_domain_address.c
|
|
|
6d3351 |
@@ -1494,19 +1494,6 @@ qemuDomainValidateDevicePCISlotsChipsets(virDomainDefPtr def,
|
|
|
6d3351 |
}
|
|
|
6d3351 |
|
|
|
6d3351 |
|
|
|
6d3351 |
-static bool
|
|
|
6d3351 |
-qemuDomainPCIBusFullyReserved(virDomainPCIAddressBusPtr bus)
|
|
|
6d3351 |
-{
|
|
|
6d3351 |
- size_t i;
|
|
|
6d3351 |
-
|
|
|
6d3351 |
- for (i = bus->minSlot; i <= bus->maxSlot; i++)
|
|
|
6d3351 |
- if (!bus->slot[i].functions)
|
|
|
6d3351 |
- return false;
|
|
|
6d3351 |
-
|
|
|
6d3351 |
- return true;
|
|
|
6d3351 |
-}
|
|
|
6d3351 |
-
|
|
|
6d3351 |
-
|
|
|
6d3351 |
/*
|
|
|
6d3351 |
* This assigns static PCI slots to all configured devices.
|
|
|
6d3351 |
* The ordering here is chosen to match the ordering used
|
|
|
6d3351 |
@@ -2038,7 +2025,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
|
|
|
6d3351 |
bool buses_reserved = true;
|
|
|
6d3351 |
|
|
|
6d3351 |
for (i = 0; i < addrs->nbuses; i++) {
|
|
|
6d3351 |
- if (!qemuDomainPCIBusFullyReserved(&addrs->buses[i])) {
|
|
|
6d3351 |
+ if (!virDomainPCIAddressBusIsFullyReserved(&addrs->buses[i])) {
|
|
|
6d3351 |
buses_reserved = false;
|
|
|
6d3351 |
break;
|
|
|
6d3351 |
}
|
|
|
6d3351 |
--
|
|
|
6d3351 |
2.13.3
|
|
|
6d3351 |
|