[PATCH] drm: add check for plane functions

Harry Wentland harry.wentland at amd.com
Fri Mar 17 20:05:11 UTC 2017


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;
>


More information about the dri-devel mailing list