drm/qxl: replace idr_init() by idr_init_base()
authorDeepak R Varma <mh12gx2825@gmail.com>
Thu, 5 Nov 2020 18:50:16 +0000 (00:20 +0530)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 6 Nov 2020 07:50:31 +0000 (08:50 +0100)
idr_init() uses base 0 which is an invalid identifier for this driver.
The idr_alloc for this driver uses 1 as start value for ID range. The
new function idr_init_base allows IDR to set the ID lookup from base 1.
This avoids all lookups that otherwise starts from 0 since 0 is always
unused / available.

References: commit 6ce711f27500 ("idr: Make 1-based IDRs more efficient")

Signed-off-by: Deepak R Varma <mh12gx2825@gmail.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20201105185016.GA71797@localhost
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/qxl/qxl_kms.c

index dc5b3850a4d4bb509cbf2514606d8fe66ea0f07b..228e2b9198f102b16d42869b222d8a6e5b8863d6 100644 (file)
@@ -231,11 +231,11 @@ int qxl_device_init(struct qxl_device *qdev,
                goto cursor_ring_free;
        }
 
-       idr_init(&qdev->release_idr);
+       idr_init_base(&qdev->release_idr, 1);
        spin_lock_init(&qdev->release_idr_lock);
        spin_lock_init(&qdev->release_lock);
 
-       idr_init(&qdev->surf_id_idr);
+       idr_init_base(&qdev->surf_id_idr, 1);
        spin_lock_init(&qdev->surf_id_idr_lock);
 
        mutex_init(&qdev->async_io_mutex);