From 0ea97181f2505ed9ecd079e79e7d87d3b149e20f Mon Sep 17 00:00:00 2001 From: Alex Waterman Date: Tue, 30 Aug 2016 13:45:18 -0700 Subject: gpu: nvgpu: Fix error handling of __semaphore_bitmap_alloc() The return from __semaphore_bitmap_alloc() is an int for which a negative value indicates a failure. That return value was being directly cast to an unsigned int before being checked for a negative error code. This obviously isn't a good idea. Coverity ID 38754 Change-Id: I50c0478e5504988b059e69b929e9c2e465df7cc0 Signed-off-by: Alex Waterman Reviewed-on: http://git-master/r/1210317 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/semaphore_gk20a.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'drivers/gpu') diff --git a/drivers/gpu/nvgpu/gk20a/semaphore_gk20a.c b/drivers/gpu/nvgpu/gk20a/semaphore_gk20a.c index 0fa31468..2038e300 100644 --- a/drivers/gpu/nvgpu/gk20a/semaphore_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/semaphore_gk20a.c @@ -122,7 +122,7 @@ struct gk20a_semaphore_pool *gk20a_semaphore_pool_alloc( { struct gk20a_semaphore_pool *p; unsigned long page_idx; - int err = 0; + int ret, err = 0; p = kzalloc(sizeof(*p), GFP_KERNEL); if (!p) @@ -130,13 +130,14 @@ struct gk20a_semaphore_pool *gk20a_semaphore_pool_alloc( __lock_sema_sea(sea); - page_idx = __semaphore_bitmap_alloc(sea->pools_alloced, - SEMAPHORE_POOL_COUNT); - if (page_idx < 0) { - err = page_idx; + ret = __semaphore_bitmap_alloc(sea->pools_alloced, SEMAPHORE_POOL_COUNT); + if (ret < 0) { + err = ret; goto fail; } + page_idx = (unsigned long)ret; + p->page = sea->sea_mem.pages[page_idx]; p->ro_sg_table = sea->ro_sg_table; p->page_idx = page_idx; -- cgit v1.2.2