]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virpci: don't fail VFIO passthrough when modules.alias is missing
authorBaptiste Daroussin <baptiste.daroussin@ovhcloud.com>
Mon, 8 Jun 2026 08:10:39 +0000 (10:10 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 10 Jun 2026 07:03:44 +0000 (09:03 +0200)
When modules.alias is not available (e.g. monolithic kernel),
virPCIDeviceFindBestVFIOVariant() would fail, causing the entire
PCI device detach to abort.

Instead, log a warning and return success with no variant found,
allowing the caller to fall back to the generic vfio-pci driver.

Signed-off-by: Baptiste Daroussin <baptiste.daroussin@ovhcloud.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/util/virpci.c

index 642717d23cb04de45f5a9f378f026375cf209956..98e030b92cfecb40cfb113fed238262635022db6 100644 (file)
@@ -1549,6 +1549,12 @@ virPCIDeviceFindBestVFIOVariant(virPCIDevice *dev,
 
     uname(&unameInfo);
     modulesAliasPath = g_strdup_printf("/lib/modules/%s/modules.alias", unameInfo.release);
+    if (!virFileExists(modulesAliasPath)) {
+        /* on monolithic kernel this file does not exist */
+        VIR_DEBUG("modules.alias not available (%s), skipping VFIO variant detection",
+                 modulesAliasPath);
+        return 0;
+    }
     if (virFileReadAll(modulesAliasPath, 8 * 1024 * 1024, &modulesAliasContent) < 0)
         return -1;