Skip to content

Commit 96bf49b

Browse files
mmeenaks-ghrodrigovivi
authored andcommitted
drm/xe/pf: Fix CFI failure in debugfs access
Reading debugfs file (/sys/kernel/debug/dri/0/gt*/pf/adverse_events) with CFI (Control Flow Integrity) enabled, the kernel panics at xe_gt_debugfs_simple_show+0x82/0xc0. xe_gt_debugfs_simple_show() declare a function pointer expecting int return type, but xe_gt_sriov_pf_monitor_print_events() is void return type, leading to CFI failure and kernel panic. [507620.973657] CFI failure at xe_gt_debugfs_simple_show+0x82/0xc0 [xe] (target: xe_gt_sriov_pf_monitor_print_events+0x0/0x130 [xe]; expected type: 0xd72c7139) Fix xe_gt_sriov_pf_monitor_print_events() function by updating to return an int type. Fixes: 1c99d3d ("drm/xe/pf: Expose PF monitor details via debugfs") Signed-off-by: Mohanram Meenakshisundaram <mohanram.meenakshisundaram@intel.com> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Link: https://patch.msgid.link/20260514174918.1556357-2-mohanram.meenakshisundaram@intel.com (cherry picked from commit ff1d386) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
1 parent 9bb2f1d commit 96bf49b

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,10 @@ int xe_gt_sriov_pf_monitor_process_guc2pf(struct xe_gt *gt, const u32 *msg, u32
114114
* VFs with no events are not printed.
115115
*
116116
* This function can only be called on PF.
117+
*
118+
* Return: always 0
117119
*/
118-
void xe_gt_sriov_pf_monitor_print_events(struct xe_gt *gt, struct drm_printer *p)
120+
int xe_gt_sriov_pf_monitor_print_events(struct xe_gt *gt, struct drm_printer *p)
119121
{
120122
unsigned int n, total_vfs = xe_gt_sriov_pf_get_totalvfs(gt);
121123
const struct xe_gt_sriov_monitor *data;
@@ -144,4 +146,6 @@ void xe_gt_sriov_pf_monitor_print_events(struct xe_gt *gt, struct drm_printer *p
144146
#undef __format
145147
#undef __value
146148
}
149+
150+
return 0;
147151
}

drivers/gpu/drm/xe/xe_gt_sriov_pf_monitor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ struct drm_printer;
1313
struct xe_gt;
1414

1515
void xe_gt_sriov_pf_monitor_flr(struct xe_gt *gt, u32 vfid);
16-
void xe_gt_sriov_pf_monitor_print_events(struct xe_gt *gt, struct drm_printer *p);
16+
int xe_gt_sriov_pf_monitor_print_events(struct xe_gt *gt, struct drm_printer *p);
1717

1818
#ifdef CONFIG_PCI_IOV
1919
int xe_gt_sriov_pf_monitor_process_guc2pf(struct xe_gt *gt, const u32 *msg, u32 len);

0 commit comments

Comments
 (0)