From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konstantin Khorenko Date: Mon, 24 Aug 2026 19:03:29 +0200 Subject: [Devel] [PATCH vz10 v2] drm: decline the device with -ENODEV when modesetting is off In-Reply-To: <20260821153821.799764-1-eva.kurchatova@virtuozzo.com> References: <20260821153821.799764-1-eva.kurchatova@virtuozzo.com> Message-ID: <20260824170329.465022-1-khorenko@virtuozzo.com> List-Id: From: Eva Kurchatova 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 Signed-off-by: Konstantin Khorenko --- Changes in v2: - fix amdgpu as well. It has the same -EINVAL after the same drm_firmware_drivers_only() check, so on a machine with an AMD card it produces the same error level message. virtio_gpu was not the only driver out of line. - drop the driver counts from the commit message. The exact numbers depend on how one counts, since some drivers call the helper without a return next to it, and they go stale with every new driver. - subject: drm/virtio -> drm, the patch is no longer about one driver. - add a Fixes: tag, and the "commit" before the referenced sha1 that checkpatch asks for. 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 -- 2.47.1