[Devel] [PATCH RHEL10 COMMIT] drm: decline the device with -ENODEV when modesetting is off

Konstantin Khorenko khorenko at virtuozzo.com
Mon Aug 24 20:04:11 MSK 2026


The commit is pushed to "branch-rh10-6.12.0-211.39.1.16.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-211.39.1.16.8.vz10
------>
commit 3125c1f2930d389cb5a4bdf58859eb404bc16391
Author: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
Date:   Fri Aug 21 18:38:20 2026 +0300

    drm: decline the device with -ENODEV when modesetting is off
    
    Our kernels disable modesetting by default, see commit 7932a11226c8
    ("drm: Disable modeset by default"), so on a machine that was not booted
    with "modeset" every KMS driver declines the device it was offered.
    Almost all of them report -ENODEV in such case, which really_probe()
    reports as "rejects match" at debug level. virtio_gpu and amdgpu return
    -EINVAL instead, which the same function reports as
    
      virtio_gpu virtio0: probe with driver virtio_gpu failed with error -22
    
    at error level, for a device the driver was never going to drive. It is
    the only device error in the log of an otherwise healthy machine, and
    the devices/error_logs selftest reports it, correctly.
    
    Return -ENODEV, as the other drivers do. Nothing else changes: the probe
    still does not happen and no drm device appears.
    
    Fixes: 7932a11226c8 ("drm: Disable modeset by default")
    https://virtuozzo.atlassian.net/browse/VSTOR-139680
    Feature: fix drivers
    Signed-off-by: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
    Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +-
 drivers/gpu/drm/virtio/virtgpu_drv.c    | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 7333e19291cf..2e1e77380f50 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -2325,7 +2325,7 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
 	if ((pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA ||
 	    (pdev->class >> 8) == PCI_CLASS_DISPLAY_OTHER) {
 		if (drm_firmware_drivers_only() && amdgpu_modeset == -1)
-			return -EINVAL;
+			return -ENODEV;
 	}
 
 	/* skip devices which are owned by radeon */
diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.c b/drivers/gpu/drm/virtio/virtgpu_drv.c
index 71c6ccad4b99..c9deef9f8af0 100644
--- a/drivers/gpu/drm/virtio/virtgpu_drv.c
+++ b/drivers/gpu/drm/virtio/virtgpu_drv.c
@@ -76,10 +76,10 @@ static int virtio_gpu_probe(struct virtio_device *vdev)
 	int ret;
 
 	if (drm_firmware_drivers_only() && virtio_gpu_modeset == -1)
-		return -EINVAL;
+		return -ENODEV;
 
 	if (virtio_gpu_modeset == 0)
-		return -EINVAL;
+		return -ENODEV;
 
 	/*
 	 * The virtio-gpu device is a virtual device that doesn't have DMA


More information about the Devel mailing list