• Tejun Heo's avatar
    driver-core: use klist for class device list and implement iterator · 5a3ceb86
    Tejun Heo authored
    Iterating over entries using callback usually isn't too fun especially
    when the entry being iterated over can't be manipulated freely.  This
    patch converts class->p->class_devices to klist and implements class
    device iterator so that the users can freely build their own control
    structure.  The users are also free to call back into class code
    without worrying about locking.
    
    class_for_each_device() and class_find_device() are converted to use
    the new iterators, so their users don't have to worry about locking
    anymore either.
    
    Note: This depends on klist-dont-iterate-over-deleted-entries patch
    because class_intf->add/remove_dev() depends on proper synchronization
    with device removal.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@suse.de>
    Cc: Jens Axboe <jens.axboe@oracle.com>
    Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
    5a3ceb86
class.c 12.4 KB