Message ID | 20170514204734.22130-4-digetx@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Reviewed-by: Mikko Perttunen <mperttunen@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@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; >
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;
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@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(-)