Name

class_find_device — device iterator for locating a particular device

Synopsis

struct device * class_find_device (struct class *  class,
 void *  data,
 int (* match(struct device *, void *));

Arguments

class

the class we're iterating

data

data for the match function

match

function to check device

Description

This is similar to the class_for_each_dev function above, but it returns a reference to a device that is 'found' for later use, as determined by the match callback.

The callback should return 0 if the device doesn't match and non-zero if it does. If the callback returns non-zero, this function will return to the caller and not iterate over any more devices.

Note, you will need to drop the reference with put_device after use.

We hold class->sem in this function, so it can not be re-acquired in match, otherwise it will self-deadlocking. For example, calls to add or remove class members would be verboten.