From: Zhu Lingshan Date: Mon, 13 Oct 2025 07:58:31 +0000 (+0800) Subject: amdkfd: process debug trap ioctl only on a primary context X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3491fa3f3c94d47e7b82604ca7b9925987f1683;p=thirdparty%2Fkernel%2Flinux.git amdkfd: process debug trap ioctl only on a primary context 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 Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c index 14bee49f0bf9..092a2b8aaea1 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c @@ -2931,6 +2931,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; @@ -2975,6 +2981,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