diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd/kfd_process.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_process.c | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c index 8a1f999daa24..9be007081b72 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c @@ -420,6 +420,12 @@ void kfd_unbind_process_from_device(struct kfd_dev *dev, unsigned int pasid)  	pqm_uninit(&p->pqm);  	pdd = kfd_get_process_device_data(dev, p); + +	if (!pdd) { +		mutex_unlock(&p->mutex); +		return; +	} +  	if (pdd->reset_wavefronts) {  		dbgdev_wave_reset_wavefronts(pdd->dev, p);  		pdd->reset_wavefronts = false; @@ -431,8 +437,7 @@ void kfd_unbind_process_from_device(struct kfd_dev *dev, unsigned int pasid)  	 * We don't call amd_iommu_unbind_pasid() here  	 * because the IOMMU called us.  	 */ -	if (pdd) -		pdd->bound = false; +	pdd->bound = false;  	mutex_unlock(&p->mutex);  }  |