Commit d55957fb authored by Yifan Zhang's avatar Yifan Zhang Committed by Alex Deucher
Browse files

drm/amdkfd: bail out early if no get_atc_vmid_pasid_mapping_info



it makes no sense to continue with an undefined vmid.

Fixes: c8b0507f ("drm/amdkfd: judge get_atc_vmid_pasid_mapping_info before call")
Signed-off-by: default avatarYifan Zhang <yifan1.zhang@amd.com>
Reported-by: default avatarNathan Chancellor <nathan@kernel.org>
Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 53b97af4
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -500,12 +500,16 @@ static int dbgdev_wave_reset_wavefronts(struct kfd_dev *dev, struct kfd_process

	pr_debug("Killing all process wavefronts\n");

	if (!dev->kfd2kgd->get_atc_vmid_pasid_mapping_info) {
		pr_err("no vmid pasid mapping supported \n");
		return -EOPNOTSUPP;
	}

	/* Scan all registers in the range ATC_VMID8_PASID_MAPPING ..
	 * ATC_VMID15_PASID_MAPPING
	 * to check which VMID the current process is mapped to.
	 */

	if (dev->kfd2kgd->get_atc_vmid_pasid_mapping_info) {
	for (vmid = first_vmid_to_scan; vmid <= last_vmid_to_scan; vmid++) {
		status = dev->kfd2kgd->get_atc_vmid_pasid_mapping_info
				(dev->adev, vmid, &queried_pasid);
@@ -516,7 +520,6 @@ static int dbgdev_wave_reset_wavefronts(struct kfd_dev *dev, struct kfd_process
			break;
		}
	}
	}

	if (vmid > last_vmid_to_scan) {
		pr_err("Didn't find vmid for pasid 0x%x\n", p->pasid);