From 7812a11903a9c0906370dad00fc092539e2219b9 Mon Sep 17 00:00:00 2001 From: Kevin Huang Date: Mon, 14 Jul 2014 15:27:34 -0700 Subject: gpu: nvgpu: gk20a: add address check in allocator. Check the address range before allocation to avoid illegal address range. Bug 1523403 Change-Id: Iff171399a980b69f9b1a18eea5bc37eff4c5d749 Signed-off-by: Kevin Huang Reviewed-on: http://git-master/r/437871 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/gk20a_allocator.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c index 32c003b6..d836dbcf 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c @@ -922,7 +922,8 @@ int gk20a_allocator_block_alloc(struct gk20a_allocator *allocator, allocator_dbg(allocator, "[in] addr %d, len %d", *addr, len); - if (*addr + len > allocator->limit || /* check addr range */ + if ((*addr != 0 && *addr < allocator->base) || /* check addr range */ + *addr + len > allocator->limit || /* check addr range */ *addr & (allocator->align - 1) || /* check addr alignment */ len == 0) /* check len */ return -EINVAL; -- cgit v1.2.2