On 2017-03-17 03:55 AM, Shirish S wrote: > update_plane() and disable_plane() functions > assoiciated with setting plane are called > without any check, causing kernel panic. > > This patch adds the required check to avoid it. > > Change-Id: I0d6792608b33e674c217388aa57c4b7d680d9bc7 > Signed-off-by: Shirish S <shirish.s at amd.com> > --- > drivers/gpu/drm/drm_plane.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c > index 249c0ae..f675f8b 100644 > --- a/drivers/gpu/drm/drm_plane.c > +++ b/drivers/gpu/drm/drm_plane.c > @@ -456,6 +456,12 @@ static int __setplane_internal(struct drm_plane *plane, > { > int ret = 0; > > + if (plane->funcs->disable_plane == NULL || > + plane->funcs->update_plane == NULL) { Thanks, Shirish, for sending these out on amd-gfx and dri-devel. I've had a second look at this. It seems like there are a bunch of other places that assume these functions are implemented by drivers. Does this check serve any purpose other than as an immediate step when implementing universal planes? Harry > + DRM_ERROR("plane funcs not implemented\n"); > + ret = -EPERM; > + goto out; > + } > /* No fb means shut it down */ > if (!fb) { > plane->old_fb = plane->fb; >