diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-07-13 15:45:04 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-07-13 15:45:04 -0700 |
| commit | 10619a898dd87233f42faf3793f0197f136fb59e (patch) | |
| tree | fbc78ad9a5104377073495bedd1b9743dfc2df60 | |
| parent | e29c82a01cf31fde869f8c4a31ec5469c812aec4 (diff) | |
| parent | e6424852e3d96206c81429e24346ddbe7fd1892f (diff) | |
Merge "msm: kgsl: Fix the access to invalid pool"
| -rw-r--r-- | drivers/gpu/msm/kgsl_pool.c | 9 |
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); |
