Driver Changes:

- Fix a SLPC debugfs NULL pointer dereference (Aradhya)
 - Fix an arbitrary value sysfs read return (Aradhya)
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRskUM7w1oG5rx2IZO4FpNVCsYGvwUCaDAwlAAKCRC4FpNVCsYG
 v/JZAP4gyyYaiaMYARIF3n6UuB+lbi1R3tz0+I6jUeRQfbHeqgEA1UbqxdpLZyuH
 qqodZmOXAeuuRGSju5KRKOL57GUCMAQ=
 =MgOM
 -----END PGP SIGNATURE-----

Merge tag 'drm-xe-next-fixes-2025-05-23' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next

Driver Changes:
- Fix a SLPC debugfs NULL pointer dereference (Aradhya)
- Fix an arbitrary value sysfs read return (Aradhya)

Signed-off-by: Dave Airlie <airlied@redhat.com>

From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
Link: https://lore.kernel.org/r/aDAxCgfm7HJbrchD@fedora
This commit is contained in:
Dave Airlie 2025-05-24 07:45:40 +10:00
commit 002619c873
2 changed files with 16 additions and 4 deletions

View File

@ -124,7 +124,8 @@ auto_link_downgrade_status_show(struct device *dev, struct device_attribute *att
{
struct pci_dev *pdev = to_pci_dev(dev);
struct xe_device *xe = pdev_to_xe_device(pdev);
u32 val;
/* default the auto_link_downgrade status to 0 */
u32 val = 0;
int ret;
xe_pm_runtime_get(xe);

View File

@ -113,23 +113,34 @@ static const struct drm_info_list vf_safe_debugfs_list[] = {
{ "guc_ctb", .show = guc_debugfs_show, .data = guc_ctb },
};
/* For GuC debugfs files that require the SLPC support */
static const struct drm_info_list slpc_debugfs_list[] = {
{ "guc_pc", .show = guc_debugfs_show, .data = guc_pc },
};
/* everything else should be added here */
static const struct drm_info_list pf_only_debugfs_list[] = {
{ "guc_log", .show = guc_debugfs_show, .data = guc_log },
{ "guc_log_dmesg", .show = guc_debugfs_show, .data = guc_log_dmesg },
{ "guc_pc", .show = guc_debugfs_show, .data = guc_pc },
};
void xe_guc_debugfs_register(struct xe_guc *guc, struct dentry *parent)
{
struct drm_minor *minor = guc_to_xe(guc)->drm.primary;
struct xe_device *xe = guc_to_xe(guc);
struct drm_minor *minor = xe->drm.primary;
drm_debugfs_create_files(vf_safe_debugfs_list,
ARRAY_SIZE(vf_safe_debugfs_list),
parent, minor);
if (!IS_SRIOV_VF(guc_to_xe(guc)))
if (!IS_SRIOV_VF(xe)) {
drm_debugfs_create_files(pf_only_debugfs_list,
ARRAY_SIZE(pf_only_debugfs_list),
parent, minor);
if (!xe->info.skip_guc_pc)
drm_debugfs_create_files(slpc_debugfs_list,
ARRAY_SIZE(slpc_debugfs_list),
parent, minor);
}
}