Commit e3491fa3 authored by Zhu Lingshan's avatar Zhu Lingshan Committed by Alex Deucher
Browse files

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: default avatarZhu Lingshan <lingshan.zhu@amd.com>
Reviewed-by: default avatarFelix Kuehling <felix.kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 3ec1a42f
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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