drm/via: use idr_init_base() to initialize dev_priv->object_idr
authorDanilo Krummrich <dakr@redhat.com>
Fri, 1 Jul 2022 19:02:26 +0000 (21:02 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Thu, 28 Jul 2022 14:36:49 +0000 (16:36 +0200)
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-2-dakr@redhat.com
drivers/gpu/drm/via/via_dri1.c

index d695d92..f659c0c 100644 (file)
@@ -2846,7 +2846,7 @@ static int via_driver_load(struct drm_device *dev, unsigned long chipset)
        if (dev_priv == NULL)
                return -ENOMEM;
 
-       idr_init(&dev_priv->object_idr);
+       idr_init_base(&dev_priv->object_idr, 1);
        dev->dev_private = (void *)dev_priv;
 
        dev_priv->chipset = chipset;