Enable building for ppc64le

This commit is contained in:
Eduard Abdullin 2026-02-11 02:31:30 +00:00 committed by root
commit e3ee0c2d4e
2 changed files with 104 additions and 2 deletions

View File

@ -0,0 +1,98 @@
From 1aa7206312b153f5209a5c161b4345e65a762c26 Mon Sep 17 00:00:00 2001
Message-ID: <1aa7206312b153f5209a5c161b4345e65a762c26.1770714339.git.jdenemar@redhat.com>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Tue, 20 Jan 2026 16:19:00 +0100
Subject: [PATCH] src: Use device alias when ifname is unset in
virDomainInterfaceAddresses()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The virDomainInterfaceAddresses() API returns an array of
_virDomainInterface structs which then describe IP addresses
associated with given domain. The struct contains 'name' member
which is documented deliberately vaguely: "interface name". This
is because depending on the source of truth used (controlled by
'source' argument) the name can be wildly different from the one
in domain XML. Now, in case of source =
VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_ARP, the host's ARP table is
parsed and matching interfaces are found by comparing MAC
addresses. If it's a match then the 'name' is set to net->ifname
(corresponds to /interface/target/@dev). But that is not always
set and sometimes may be NULL (e.g. for hostdevs, usernet). We
can't change the API (like we did for hwaddr in v1.2.14-rc1~105)
because this is already released. So the next best thing to do is
to put the interface alias in there.
To be on a safe side, do the same change to the
VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE case.
Resolves: https://issues.redhat.com/browse/RHEL-141496
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 4009126f17a19ea2f512f1952f4ea32d231ade85)
Resolves: https://issues.redhat.com/browse/RHEL-143933
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/conf/domain_conf.c | 16 ++++++++++++++--
src/libvirt-domain.c | 2 ++
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f950f7c75d..902c1188ef 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -15604,6 +15604,12 @@ virDomainNetDHCPInterfaces(virDomainDef *def,
goto error;
if (n_leases) {
+ const char *ifname = def->nets[i]->ifname;
+
+ if (!ifname) {
+ ifname = def->nets[i]->info.alias;
+ }
+
ifaces_ret = g_renew(virDomainInterfacePtr, ifaces_ret, ifaces_count + 1);
ifaces_ret[ifaces_count] = g_new0(virDomainInterface, 1);
iface = ifaces_ret[ifaces_count];
@@ -15612,7 +15618,7 @@ virDomainNetDHCPInterfaces(virDomainDef *def,
/* Assuming each lease corresponds to a separate IP */
iface->naddrs = n_leases;
iface->addrs = g_new0(virDomainIPAddress, iface->naddrs);
- iface->name = g_strdup(def->nets[i]->ifname);
+ iface->name = g_strdup(ifname);
iface->hwaddr = g_strdup(macaddr);
}
@@ -15666,9 +15672,15 @@ virDomainNetARPInterfaces(virDomainDef *def,
virArpTableEntry entry = table->t[j];
if (STREQ(entry.mac, macaddr)) {
+ const char *ifname = def->nets[i]->ifname;
+
+ if (!ifname) {
+ ifname = def->nets[i]->info.alias;
+ }
+
iface = g_new0(virDomainInterface, 1);
- iface->name = g_strdup(def->nets[i]->ifname);
+ iface->name = g_strdup(ifname);
iface->hwaddr = g_strdup(macaddr);
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 74c70a0a43..c7451fee05 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -12880,6 +12880,8 @@ virDomainFSInfoFree(virDomainFSInfoPtr info)
* Note that for some @source values some pieces of returned @ifaces
* might be unset (e.g. VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_ARP does not
* set IP address prefix as ARP table does not have any notion of that).
+ * Moreover, it may happen that the interface doesn't have a name. In
+ * that case, @ifaces->name is set to the interface's device alias.
*
* @ifaces->name and @ifaces->hwaddr are never NULL.
*
--
2.53.0

View File

@ -298,7 +298,7 @@
Summary: Library providing a simple virtualization API
Name: libvirt
Version: 11.10.0
Release: 6%{?dist}%{?extra_release}.alma.1
Release: 7%{?dist}%{?extra_release}.alma.1
License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
URL: https://libvirt.org/
@ -343,6 +343,7 @@ Patch34: libvirt-qemu-open-VFIO-FDs-from-libvirt-backend.patch
Patch35: libvirt-qemu-open-iommufd-FD-from-libvirt-backend.patch
Patch36: libvirt-qemu-Update-Cgroup-namespace-and-seclabel-for-iommufd.patch
Patch37: libvirt-tests-qemuxmlconfdata-provide-iommufd-sample-XML-and-CLI-args.patch
Patch38: libvirt-src-Use-device-alias-when-ifname-is-unset-in-virDomainInterfaceAddresses.patch
Requires: libvirt-daemon = %{version}-%{release}
@ -2734,9 +2735,12 @@ exit 0
%endif
%changelog
* Sat Feb 07 2026 Eduard Abdullin <eabdullin@almalinux.org> - 11.10.0-6.alma.1
* Wed Feb 11 2026 Eduard Abdullin <eabdullin@almalinux.org> - 11.10.0-7.alma.1
- Enable building for ppc64le
* Tue Feb 10 2026 Jiri Denemark <jdenemar@redhat.com> - 11.10.0-7
- src: Use device alias when ifname is unset in virDomainInterfaceAddresses() (RHEL-143933)
* Fri Feb 6 2026 Jiri Denemark <jdenemar@redhat.com> - 11.10.0-6
- qemu: Implement support for associating iommufd to hostdev (RHEL-126346, RHEL-74202)
- qemu: Introduce privateData for hostdevs (RHEL-126346, RHEL-74202)