From ba3dbc452c6d61fad8149207b007e9a75e71469d Mon Sep 17 00:00:00 2001 From: Alex Waterman Date: Thu, 13 Oct 2016 13:37:46 -0700 Subject: gpu: nvgpu: Avoid 64 bit division Avoid doing 64bit division in the page allocator. This causes problems on 32 bit platforms. Bug 1799159 Change-Id: I5166a71a4e84454686cce6d6cdca678a862a7ae7 Signed-off-by: Alex Waterman Reviewed-on: http://git-master/r/1236799 (cherry picked from commit 21c091d1c00433acb9965c3d348d16fbb4c50c1a) Reviewed-on: http://git-master/r/1236195 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c b/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c index b8e38620..bc769a2b 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c @@ -229,7 +229,7 @@ static struct page_alloc_slab_page *alloc_slab_page( INIT_LIST_HEAD(&slab_page->list_entry); slab_page->slab_size = slab->slab_size; - slab_page->nr_objects = a->page_size / slab->slab_size; + slab_page->nr_objects = (u32)a->page_size / slab->slab_size; slab_page->nr_objects_alloced = 0; slab_page->owner = slab; slab_page->state = SP_NONE; @@ -389,7 +389,7 @@ static void __gk20a_free_slab(struct gk20a_page_allocator *a, enum slab_page_state new_state; int offs; - offs = (alloc->base - slab_page->page_addr) / slab_page->slab_size; + offs = (u32)(alloc->base - slab_page->page_addr) / slab_page->slab_size; bitmap_clear(&slab_page->bitmap, offs, 1); slab_page->nr_objects_alloced--; -- cgit v1.2.2