On 2025-10-22 03:30, Zhu Lingshan wrote:
Set_debug_trap ioctl should work on a specific kfd_process
even when multiple contexts feature is implemented.
For consistency, this commit allow set_debug_trap ioctl only work on the
primary kfd process of a user space program
Signed-off-by: Zhu Lingshan <[email protected]>
Reviewed-by: Felix Kuehling <[email protected]>
---
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
index 73de2de8be0f..ad5ca3fd847c 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -2927,6 +2927,12 @@ static int kfd_ioctl_set_debug_trap(struct file *filep,
struct kfd_process *p, v
struct kfd_process_device *pdd = NULL;
int r = 0;
+ if (p->context_id != KFD_CONTEXT_ID_PRIMARY) {
+ pr_debug("Set debug trap ioctl can not be invoked on non-primary kfd
process\n");
+
+ return -EOPNOTSUPP;
+ }
+
if (sched_policy == KFD_SCHED_POLICY_NO_HWS) {
pr_err("Debugging does not support sched_policy %i",
sched_policy);
return -EINVAL;
@@ -2971,6 +2977,12 @@ static int kfd_ioctl_set_debug_trap(struct file *filep,
struct kfd_process *p, v
goto out;
}
+ if (target->context_id != KFD_CONTEXT_ID_PRIMARY) {
+ pr_debug("Set debug trap ioctl not supported on non-primary kfd
process\n");
+ r = -EOPNOTSUPP;
+ goto out;
+ }
+
/* Check if target is still PTRACED. */
rcu_read_lock();
if (target != p && args->op != KFD_IOC_DBG_TRAP_DISABLE