drm/v3d: use idr_init_base() to initialize v3d_priv->perfmon.idr
authorDanilo Krummrich <dakr@redhat.com>
Fri, 1 Jul 2022 19:02:25 +0000 (21:02 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Thu, 28 Jul 2022 14:35:56 +0000 (15:35 +0100)
idr_init_base(), implemented by commit 6ce711f27500 ("idr: Make 1-based
IDRs more efficient"), let us set an arbitrary base other than
idr_init(), which uses base 0.

Since, for this IDR, no ID < 1 is ever requested/allocated, using
idr_init_base(&idr, 1) avoids unnecessary tree walks.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20220701190227.284783-1-dakr@redhat.com
drivers/gpu/drm/v3d/v3d_perfmon.c

index f6a88ab..48aaaa9 100644 (file)
@@ -95,7 +95,7 @@ struct v3d_perfmon *v3d_perfmon_find(struct v3d_file_priv *v3d_priv, int id)
 void v3d_perfmon_open_file(struct v3d_file_priv *v3d_priv)
 {
        mutex_init(&v3d_priv->perfmon.lock);
-       idr_init(&v3d_priv->perfmon.idr);
+       idr_init_base(&v3d_priv->perfmon.idr, 1);
 }
 
 static int v3d_perfmon_idr_del(int id, void *elem, void *data)