Commit 79c901c9 authored by Jani Nikula's avatar Jani Nikula Committed by Joonas Lahtinen
Browse files

drm/i915: taint kernel when force probing unsupported devices



For development and testing purposes, the i915.force_probe module
parameter and DRM_I915_FORCE_PROBE kconfig option allow probing of
devices that aren't supported by the driver.

The i915.force_probe module parameter is "unsafe" and setting it taints
the kernel. However, using the kconfig option does not.

Always taint the kernel when force probing a device that is not
supported.

v2: Drop "depends on EXPERT" to avoid build breakage (kernel test robot)

Fixes: 7ef5ef5c ("drm/i915: add force_probe module parameter to replace alpha_support")
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Dave Airlie <airlied@gmail.com>
Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230504103508.1818540-1-jani.nikula@intel.com


(cherry picked from commit 3312bb4a)
Signed-off-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
parent 0ff80028
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -62,10 +62,11 @@ config DRM_I915_FORCE_PROBE
	  This is the default value for the i915.force_probe module
	  parameter. Using the module parameter overrides this option.

	  Force probe the i915 for Intel graphics devices that are
	  recognized but not properly supported by this kernel version. It is
	  recommended to upgrade to a kernel version with proper support as soon
	  as it is available.
	  Force probe the i915 driver for Intel graphics devices that are
	  recognized but not properly supported by this kernel version. Force
	  probing an unsupported device taints the kernel. It is recommended to
	  upgrade to a kernel version with proper support as soon as it is
	  available.

	  It can also be used to block the probe of recognized and fully
	  supported devices.
@@ -75,7 +76,8 @@ config DRM_I915_FORCE_PROBE
	  Use "<pci-id>[,<pci-id>,...]" to force probe the i915 for listed
	  devices. For example, "4500" or "4500,4571".

	  Use "*" to force probe the driver for all known devices.
	  Use "*" to force probe the driver for all known devices. Not
	  recommended.

	  Use "!" right before the ID to block the probe of the device. For
	  example, "4500,!4571" forces the probe of 4500 and blocks the probe of
+6 −0
Original line number Diff line number Diff line
@@ -1344,6 +1344,12 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
		return -ENODEV;
	}

	if (intel_info->require_force_probe) {
		dev_info(&pdev->dev, "Force probing unsupported Device ID %04x, tainting kernel\n",
			 pdev->device);
		add_taint(TAINT_USER, LOCKDEP_STILL_OK);
	}

	/* Only bind to function 0 of the device. Early generations
	 * used function 1 as a placeholder for multi-head. This causes
	 * us confusion instead, especially on the systems where both