Commit 002619c8 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-xe-next-fixes-2025-05-23' of...

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: default avatarDave Airlie <airlied@redhat.com>

From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
Link: https://lore.kernel.org/r/aDAxCgfm7HJbrchD@fedora
parents 73230fff 879ede53
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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);
+14 −3
Original line number Diff line number Diff line
@@ -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);
	}
}