[PATCH v2] drm/tegra: Correct idr_alloc() minimum id

Mikko Perttunen cyndis at kapsi.fi
Tue May 16 08:11:00 UTC 2017


Reviewed-by: Mikko Perttunen <mperttunen at nvidia.com>

On 14.05.2017 23:47, Dmitry Osipenko wrote:
> The client ID 0 is reserved by the host1x/cdma to mark the timeout timer
> work as already been scheduled and context ID is used as the clients one.
> This fixes spurious CDMA timeouts.
>
> Fixes: bdd2f9cd10eb ("drm/tegra: Don't leak kernel pointer to userspace")
> Signed-off-by: Dmitry Osipenko <digetx at gmail.com>
> ---
>
> v2: Changed the commit description, now explains the cause of CDMA timeouts.
>
>  drivers/gpu/drm/tegra/drm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
> index c5844a065681..489cb32453f7 100644
> --- a/drivers/gpu/drm/tegra/drm.c
> +++ b/drivers/gpu/drm/tegra/drm.c
> @@ -548,7 +548,7 @@ static int tegra_client_open(struct tegra_drm_file *fpriv,
>  	if (err < 0)
>  		return err;
>
> -	err = idr_alloc(&fpriv->contexts, context, 0, 0, GFP_KERNEL);
> +	err = idr_alloc(&fpriv->contexts, context, 1, 0, GFP_KERNEL);
>  	if (err < 0) {
>  		client->ops->close_channel(context);
>  		return err;
>


More information about the dri-devel mailing list