summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-07-13 15:45:04 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-07-13 15:45:04 -0700
commit10619a898dd87233f42faf3793f0197f136fb59e (patch)
treefbc78ad9a5104377073495bedd1b9743dfc2df60
parente29c82a01cf31fde869f8c4a31ec5469c812aec4 (diff)
parente6424852e3d96206c81429e24346ddbe7fd1892f (diff)
Merge "msm: kgsl: Fix the access to invalid pool"
-rw-r--r--drivers/gpu/msm/kgsl_pool.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/gpu/msm/kgsl_pool.c b/drivers/gpu/msm/kgsl_pool.c
index 48b7b0872425..7fb3b37ac191 100644
--- a/drivers/gpu/msm/kgsl_pool.c
+++ b/drivers/gpu/msm/kgsl_pool.c
@@ -298,17 +298,18 @@ int kgsl_pool_alloc_page(int *page_size, struct page **pages,
return -EINVAL;
pool = _kgsl_get_pool_from_order(order);
- pool_idx = kgsl_pool_idx_lookup(order);
+ if (pool == NULL)
+ return -EINVAL;
- if (pool != NULL)
- page = _kgsl_pool_get_page(pool);
+ pool_idx = kgsl_pool_idx_lookup(order);
+ page = _kgsl_pool_get_page(pool);
/* Allocate a new page if not allocated from pool */
if (page == NULL) {
gfp_t gfp_mask = kgsl_gfp_mask(order);
/* Only allocate non-reserved memory for certain pools */
- if (!pool->allocation_allowed) {
+ if (!pool->allocation_allowed && pool_idx > 0) {
*page_size = PAGE_SIZE <<
kgsl_pools[pool_idx-1].pool_order;
*align = ilog2(*page_size);