|
@@ -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);
|
|
|
}
|