Am Dienstag, den 18.10.2016, 16:44 +0800 schrieb Liu Ying: > Before accessing the u/v offset(aka, u/vbo for IPUv3) of the old plane state's > relevant fb, we should make sure the fb is in YU12 or YV12 pixel format(which > are the two YUV pixel formats we support only), otherwise, we are likely to > trigger BUG_ON() in drm_plane_state_to_u/vbo() since the fb's pixel format is > probably not YU12 or YV12. > > Link: https://bugs.freedesktop.org/show_bug.cgi?id=98150 > Fixes: c6c1f9bc798b ("drm/imx: Add active plane reconfiguration support") > Cc: stable@xxxxxxxxxxxxxxx # 4.8 > Signed-off-by: Liu Ying <gnuiyl@xxxxxxxxx> > --- > v1->v2: > * Correct the condition under which we may access old u/vbo - old->pixel_format > is not necessarily the same to fb->pixel_format, instead, it could be YU12 > or YV12. This may cover the case in which we switch fb pixel format > bewteen YU12 and YV12. Applied, thank you. regards Philipp > drivers/gpu/drm/imx/ipuv3-plane.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/imx/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3-plane.c > index e33110e..08d0fd5 100644 > --- a/drivers/gpu/drm/imx/ipuv3-plane.c > +++ b/drivers/gpu/drm/imx/ipuv3-plane.c > @@ -359,7 +359,9 @@ static int ipu_plane_atomic_check(struct drm_plane *plane, > if ((ubo > 0xfffff8) || (vbo > 0xfffff8)) > return -EINVAL; > > - if (old_fb) { > + if (old_fb && > + (old_fb->pixel_format == DRM_FORMAT_YUV420 || > + old_fb->pixel_format == DRM_FORMAT_YVU420)) { > old_ubo = drm_plane_state_to_ubo(old_state); > old_vbo = drm_plane_state_to_vbo(old_state); > if (ubo != old_ubo || vbo != old_vbo) -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html