diff options
author | Dmitry Osipenko <digetx@gmail.com> | 2017-06-14 19:18:25 -0400 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2017-06-15 08:12:25 -0400 |
commit | d6c153ec85856f5ad29adc20739ec28edeb7c042 (patch) | |
tree | 4dc6b2ff3516ed510f883dd12e422c63af192b45 | |
parent | 1066a8959d04785b9d2e9cbb91aaef922b710c4a (diff) |
drm/tegra: Correct idr_alloc() minimum id
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>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: http://patchwork.freedesktop.org/patch/msgid/9c19a44219acd988e678cf9abe21363911184625.1497480754.git.digetx@gmail.com
-rw-r--r-- | drivers/gpu/drm/tegra/drm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c index fefa715c4315..81f86a67c10d 100644 --- a/drivers/gpu/drm/tegra/drm.c +++ b/drivers/gpu/drm/tegra/drm.c | |||
@@ -539,7 +539,7 @@ static int tegra_client_open(struct tegra_drm_file *fpriv, | |||
539 | if (err < 0) | 539 | if (err < 0) |
540 | return err; | 540 | return err; |
541 | 541 | ||
542 | err = idr_alloc(&fpriv->contexts, context, 0, 0, GFP_KERNEL); | 542 | err = idr_alloc(&fpriv->contexts, context, 1, 0, GFP_KERNEL); |
543 | if (err < 0) { | 543 | if (err < 0) { |
544 | client->ops->close_channel(context); | 544 | client->ops->close_channel(context); |
545 | return err; | 545 | return err; |