[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