]> asedeno.scripts.mit.edu Git - linux.git/commit
drm/amdkfd: unbind only existing processes
authorOded Gabbay <oded.gabbay@gmail.com>
Thu, 26 May 2016 05:41:08 +0000 (08:41 +0300)
committerOded Gabbay <oded.gabbay@gmail.com>
Fri, 3 Jun 2016 05:50:40 +0000 (08:50 +0300)
commit121b78e679ee3ffab780115e260b2775d0cc1f73
tree89fe5381f5d37eb84603d05a4a303b7742e6a38b
parentab3ab68493aaac6fea4ad1bb597def9f48f41c71
drm/amdkfd: unbind only existing processes

When unbinding a process from a device (initiated by amd_iommu_v2), the
driver needs to make sure that process still exists in the process table.
There is a possibility that amdkfd's own notifier handler -
kfd_process_notifier_release() - was called before the unbind function
and it already removed the process from the process table.

v2:
Because there can be only one process with the specified pasid, and
because *p can't be NULL inside the hash_for_each_rcu macro, it is more
reasonable to just put the whole code inside the if statement that
compares the pasid value. That way, when we exit hash_for_each_rcu, we
simply exit the function as well.

Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
CC: Stable <stable@vger.kernel.org>
drivers/gpu/drm/amd/amdkfd/kfd_process.c