diff options
author | Jie Zhou <b30303@freescale.com> | 2010-07-23 19:53:12 +0800 |
---|---|---|
committer | Dennis Wenzel <b21659@freescale.com> | 2010-07-23 11:24:32 -0500 |
commit | 41e77b3a969545071232c2aadb696e48ead7bf55 (patch) | |
tree | 5809e6c54759da9dd115eede1af384e4d40b32a2 /drivers/mxc/amd-gpu/common/gsl_sharedmem.c | |
parent | f9d77737b87700e8b8c428a47658cd931b08ca43 (diff) |
ENGR00125434 GPU: Fix kernel oops when run ES2.0 conf. test for second time
memstore should be freed properly. a following change will be prepared to
improve the alloc/free logic for device memstore.
Signed-off-by: Jie Zhou <b30303@freescale.com>
Acked-by: Rob Herring <r.herring@freescale.com>
Diffstat (limited to 'drivers/mxc/amd-gpu/common/gsl_sharedmem.c')
-rw-r--r-- | drivers/mxc/amd-gpu/common/gsl_sharedmem.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/mxc/amd-gpu/common/gsl_sharedmem.c b/drivers/mxc/amd-gpu/common/gsl_sharedmem.c index 2892668d7c45..51e66f97c52e 100644 --- a/drivers/mxc/amd-gpu/common/gsl_sharedmem.c +++ b/drivers/mxc/amd-gpu/common/gsl_sharedmem.c @@ -482,8 +482,16 @@ kgsl_sharedmem_read0(const gsl_memdesc_t *memdesc, void *dst, unsigned int offse KOS_ASSERT(dst); KOS_ASSERT(sizebytes); - KOS_ASSERT(memdesc->gpuaddr >= shmem->apertures[aperture_index].memarena->gpubaseaddr); - KOS_ASSERT((memdesc->gpuaddr + sizebytes) <= (shmem->apertures[aperture_index].memarena->gpubaseaddr + shmem->apertures[aperture_index].memarena->sizebytes)); + + if (memdesc->gpuaddr < shmem->apertures[aperture_index].memarena->gpubaseaddr) + { + return (GSL_FAILURE_BADPARAM); + } + + if (memdesc->gpuaddr + sizebytes > shmem->apertures[aperture_index].memarena->gpubaseaddr + shmem->apertures[aperture_index].memarena->sizebytes) + { + return (GSL_FAILURE_BADPARAM); + } gpuoffsetbytes = (memdesc->gpuaddr - shmem->apertures[aperture_index].memarena->gpubaseaddr) + offsetbytes; |