]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/vf: Avoid reading media version when media GT is disabled
authorPiotr Piórkowski <piotr.piorkowski@intel.com>
Mon, 2 Feb 2026 11:50:41 +0000 (12:50 +0100)
committerMichał Winiarski <michal.winiarski@intel.com>
Wed, 11 Feb 2026 10:26:59 +0000 (11:26 +0100)
When the media GT is not allowed, a VF must not attempt to read
the media version from the GuC. The GuC may not be loaded, and
any attempt to communicate with it would result in a timeout
and a VF probe failure:

(...)
[ 1912.406046] xe 0000:01:00.1: [drm] *ERROR* Tile0: GT1: GuC mmio request 0x5507: no reply 0x5507
[ 1912.407277] xe 0000:01:00.1: [drm] *ERROR* Tile0: GT1: [GUC COMMUNICATION] MMIO send failed (-ETIMEDOUT)
[ 1912.408689] xe 0000:01:00.1: [drm] *ERROR* VF: Tile0: GT1: Failed to reset GuC state (-ETIMEDOUT)
[ 1912.413986] xe 0000:01:00.1: probe with driver xe failed with error -110

Let's skip reading the media version for VFs when the media GT is not
allowed.

v2: move the condition directly to the VF path

Fixes: 7abd69278bb5 ("drm/xe/configfs: Add attribute to disable GT types")
Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Shuicheng Lin <shuicheng.lin@intel.com>
Reviewed-by: Shuicheng Lin <shuicheng.lin@intel.com>
Link: https://patch.msgid.link/20260202115041.2863357-1-piotr.piorkowski@intel.com
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
drivers/gpu/drm/xe/xe_pci.c

index 3e1a87dd78e0a99f15bea478d0d17fbead0ff2aa..56a768f2cfca36462bbcb2758ebef6343179ea35 100644 (file)
@@ -588,6 +588,12 @@ static int read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver, u
                struct xe_gt *gt __free(kfree) = NULL;
                int err;
 
+               /* Don't try to read media ver if media GT is not allowed */
+               if (type == GMDID_MEDIA && !xe_configfs_media_gt_allowed(to_pci_dev(xe->drm.dev))) {
+                       *ver = *revid = 0;
+                       return 0;
+               }
+
                gt = kzalloc(sizeof(*gt), GFP_KERNEL);
                if (!gt)
                        return -ENOMEM;