diff --git a/drivers/video/tegra/nvmap/nvmap_dev.c b/drivers/video/tegra/nvmap/nvmap_dev.c index 0ab9d75f..77e0ecac 100644 --- a/drivers/video/tegra/nvmap/nvmap_dev.c +++ b/drivers/video/tegra/nvmap/nvmap_dev.c @@ -276,11 +276,11 @@ static void destroy_client(struct nvmap_client *client) dma_buf_put(ref->handle->dmabuf); rb_erase(&ref->node, &client->handle_refs); atomic_dec(&ref->handle->share_count); - dupes = atomic_read(&ref->dupes); - while (dupes--) + while (dupes > 0) { nvmap_handle_put(ref->handle); - + dupes--; + } kfree(ref); }