]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
amdkfd: process debug trap ioctl only on a primary context
authorZhu Lingshan <lingshan.zhu@amd.com>
Mon, 13 Oct 2025 07:58:31 +0000 (15:58 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 8 Dec 2025 19:19:30 +0000 (14:19 -0500)
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 <lingshan.zhu@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c

index 14bee49f0bf95111a44ba785184e19583970deb0..092a2b8aaea141deed0eeb87be73d91e944c2a39 100644 (file)
@@ -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