• Kristian Hoegsberg's avatar
    lib: add idr_for_each() · 96d7fa42
    Kristian Hoegsberg authored
    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: default avatarKristian Hoegsberg <krh@redhat.com>
    Cc: Tejun Heo <htejun@gmail.com>
    Cc: Dave Airlie <airlied@linux.ie>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    96d7fa42
idr.c 18.4 KB