gpu: nvgpu: Only cleanup existing semaphore pools

Not all VMs have semaphore pools made for them even when semaphores
are going to be used. Thus only VMs with existing semaphore pools
should have their pools cleaned up.

Bug 1816516

Change-Id: I07828708faef451f1711f58c0d5b3f8e4d296dd0
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: http://git-master/r/1225612
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
(cherry picked from commit 6cdb7b6650765465dca68dc3c23b3d795ccdafb5)
Reviewed-on: http://git-master/r/1240105
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
Alex Waterman
2016-09-20 15:22:23 -07:00
committed by mobile promotions
parent d96ff67fb0
commit f0fe1c2f02

View File

@@ -4077,8 +4077,10 @@ static void gk20a_vm_remove_support_nofree(struct vm_gk20a *vm)
* update_gmmu_lock.
*/
if (!gk20a_platform_has_syncpoints(gk20a_from_vm(vm)->dev)) {
gk20a_semaphore_pool_unmap(vm->sema_pool, vm);
gk20a_semaphore_pool_put(vm->sema_pool);
if (vm->sema_pool) {
gk20a_semaphore_pool_unmap(vm->sema_pool, vm);
gk20a_semaphore_pool_put(vm->sema_pool);
}
}
mutex_lock(&vm->update_gmmu_lock);