summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2016-10-13 16:37:46 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-10-18 15:24:41 -0400
commitba3dbc452c6d61fad8149207b007e9a75e71469d (patch)
tree6edf42d4ffe0f8c235248b18cbdd74934725d213 /drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c
parentfc4f0ddddb50da826b527b7791028a67539f34c8 (diff)
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 <alexw@nvidia.com> Reviewed-on: http://git-master/r/1236799 (cherry picked from commit 21c091d1c00433acb9965c3d348d16fbb4c50c1a) Reviewed-on: http://git-master/r/1236195 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a_allocator_page.c4
1 files changed, 2 insertions, 2 deletions
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(
229 229
230 INIT_LIST_HEAD(&slab_page->list_entry); 230 INIT_LIST_HEAD(&slab_page->list_entry);
231 slab_page->slab_size = slab->slab_size; 231 slab_page->slab_size = slab->slab_size;
232 slab_page->nr_objects = a->page_size / slab->slab_size; 232 slab_page->nr_objects = (u32)a->page_size / slab->slab_size;
233 slab_page->nr_objects_alloced = 0; 233 slab_page->nr_objects_alloced = 0;
234 slab_page->owner = slab; 234 slab_page->owner = slab;
235 slab_page->state = SP_NONE; 235 slab_page->state = SP_NONE;
@@ -389,7 +389,7 @@ static void __gk20a_free_slab(struct gk20a_page_allocator *a,
389 enum slab_page_state new_state; 389 enum slab_page_state new_state;
390 int offs; 390 int offs;
391 391
392 offs = (alloc->base - slab_page->page_addr) / slab_page->slab_size; 392 offs = (u32)(alloc->base - slab_page->page_addr) / slab_page->slab_size;
393 bitmap_clear(&slab_page->bitmap, offs, 1); 393 bitmap_clear(&slab_page->bitmap, offs, 1);
394 394
395 slab_page->nr_objects_alloced--; 395 slab_page->nr_objects_alloced--;