drm/msm: mdp4: Fix drm_framebuffer dereference crash
mdp4_get_frame_format() can dereference a drm_framebuffer when it's NULL. Call it in mdp4_plane_mode_set only when we know fb is non-NULL. Signed-off-by: Archit Taneja <architt@codeaurora.org> Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
parent
ac45146733
commit
a1c3e3e01e
|
@ -220,13 +220,15 @@ static int mdp4_plane_mode_set(struct drm_plane *plane,
|
||||||
uint32_t op_mode = 0;
|
uint32_t op_mode = 0;
|
||||||
uint32_t phasex_step = MDP4_VG_PHASE_STEP_DEFAULT;
|
uint32_t phasex_step = MDP4_VG_PHASE_STEP_DEFAULT;
|
||||||
uint32_t phasey_step = MDP4_VG_PHASE_STEP_DEFAULT;
|
uint32_t phasey_step = MDP4_VG_PHASE_STEP_DEFAULT;
|
||||||
enum mdp4_frame_format frame_type = mdp4_get_frame_format(fb);
|
enum mdp4_frame_format frame_type;
|
||||||
|
|
||||||
if (!(crtc && fb)) {
|
if (!(crtc && fb)) {
|
||||||
DBG("%s: disabled!", mdp4_plane->name);
|
DBG("%s: disabled!", mdp4_plane->name);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
frame_type = mdp4_get_frame_format(fb);
|
||||||
|
|
||||||
/* src values are in Q16 fixed point, convert to integer: */
|
/* src values are in Q16 fixed point, convert to integer: */
|
||||||
src_x = src_x >> 16;
|
src_x = src_x >> 16;
|
||||||
src_y = src_y >> 16;
|
src_y = src_y >> 16;
|
||||||
|
|
Loading…
Reference in New Issue