drm/msm/adreno: Ensure that the zap shader region is big enough
Before loading the zap shader we should ensure that the reserved memory region is big enough to hold the loaded file. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Reviewed-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
Родитель
7b8c9e2030
Коммит
6672e11cad
|
@ -67,7 +67,6 @@ static int zap_shader_load_mdt(struct msm_gpu *gpu, const char *fwname,
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
mem_phys = r.start;
|
mem_phys = r.start;
|
||||||
mem_size = resource_size(&r);
|
|
||||||
|
|
||||||
/* Request the MDT file for the firmware */
|
/* Request the MDT file for the firmware */
|
||||||
fw = adreno_request_fw(to_adreno_gpu(gpu), fwname);
|
fw = adreno_request_fw(to_adreno_gpu(gpu), fwname);
|
||||||
|
@ -83,6 +82,13 @@ static int zap_shader_load_mdt(struct msm_gpu *gpu, const char *fwname,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mem_size > resource_size(&r)) {
|
||||||
|
DRM_DEV_ERROR(dev,
|
||||||
|
"memory region is too small to load the MDT\n");
|
||||||
|
ret = -E2BIG;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
/* Allocate memory for the firmware image */
|
/* Allocate memory for the firmware image */
|
||||||
mem_region = memremap(mem_phys, mem_size, MEMREMAP_WC);
|
mem_region = memremap(mem_phys, mem_size, MEMREMAP_WC);
|
||||||
if (!mem_region) {
|
if (!mem_region) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче