]> git.baikalelectronics.ru Git - kernel.git/commit
lib: add idr_for_each()
authorKristian Hoegsberg <krh@redhat.com>
Mon, 16 Jul 2007 06:37:24 +0000 (23:37 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 16 Jul 2007 16:05:34 +0000 (09:05 -0700)
commit73595fb71409bfeaffe3ef981b572b77c8aa6469
treeba8a8200bda4576e1e4dcce2ff27a7a7a94723a2
parent862563cc8a4f063a316d0be282e7923104788f96
lib: add idr_for_each()

This patch adds an iterator function for the idr data structure.  Compared
to just iterating through the idr with an integer and idr_find, this
iterator is (almost, but not quite) linear in the number of elements, as
opposed to the number of integers in the range covered by the idr.  This
makes a difference for sparse idrs, but more importantly, it's a nicer way
to iterate through the elements.

The drm subsystem is moving to idr for tracking contexts and drawables, and
with this change, we can use the idr exclusively for tracking these
resources.

[akpm@linux-foundation.org: fix comment]
Signed-off-by: Kristian Hoegsberg <krh@redhat.com>
Cc: Tejun Heo <htejun@gmail.com>
Cc: Dave Airlie <airlied@linux.ie>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/idr.h
lib/idr.c