]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/xe/vf: Don't expose sysfs attributes not applicable for VFs
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 16 Sep 2025 17:00:28 +0000 (19:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Oct 2025 11:48:33 +0000 (13:48 +0200)
[ Upstream commit 500dad428e5b0de4c1bdfa893822a6e06ddad0b5 ]

VFs can't read BMG_PCIE_CAP(0x138340) register nor access PCODE
(already guarded by the info.skip_pcode flag) so we shouldn't
expose attributes that require any of them to avoid errors like:

 [] xe 0000:03:00.1: [drm] Tile0: GT0: VF is trying to read an \
                     inaccessible register 0x138340+0x0
 [] RIP: 0010:xe_gt_sriov_vf_read32+0x6c2/0x9a0 [xe]
 [] Call Trace:
 []  xe_mmio_read32+0x110/0x280 [xe]
 []  auto_link_downgrade_capable_show+0x2e/0x70 [xe]
 []  dev_attr_show+0x1a/0x70
 []  sysfs_kf_seq_show+0xaa/0x120
 []  kernfs_seq_show+0x41/0x60

Fixes: 0e414bf7ad01 ("drm/xe: Expose PCIe link downgrade attributes")
Fixes: cdc36b66cd41 ("drm/xe: Expose fan control and voltage regulator version")
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Reviewed-by: Raag Jadav <raag.jadav@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20250916170029.3313-2-michal.wajdeczko@intel.com
(cherry picked from commit a2d6223d224f333f705ed8495bf8bebfbc585c35)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/xe/xe_device_sysfs.c

index b9440f8c781e3b22ec686f802049646a31b31319..652da4d294c0b2d3611a6d6ee476be4f5db9c83b 100644 (file)
@@ -166,7 +166,7 @@ int xe_device_sysfs_init(struct xe_device *xe)
                        return ret;
        }
 
-       if (xe->info.platform == XE_BATTLEMAGE) {
+       if (xe->info.platform == XE_BATTLEMAGE && !IS_SRIOV_VF(xe)) {
                ret = sysfs_create_files(&dev->kobj, auto_link_downgrade_attrs);
                if (ret)
                        return ret;