/** * driver_find - locate driver on a bus by its name. * @name: name of the driver. * @bus: bus to scan for the driver. * * Call kset_find_obj() to iterate over list of drivers on * a bus to find driver by name. Return driver if found. * * Note that kset_find_obj increments driver's reference count. */ struct device_driver *driver_find(const char *name, struct bus_type *bus) { struct kobject *k = kset_find_obj(&bus->drivers, name); if (k) return to_drv(k); return NULL; }
/* _VMKLNX_CODECHECK_: get_driver */ struct device_driver * get_driver(struct device_driver * drv) { #if defined(__VMKLNX__) VMK_ASSERT(vmk_PreemptionIsEnabled() == VMK_FALSE); if (drv) { kref_get(&drv->kref); } return drv; #else /* !defined(__VMKLNX__) */ return drv ? to_drv(kobject_get(&drv->kobj)) : NULL; #endif /* defined(__VMKLNX__) */ }
/** * get_driver - increment driver reference count. * @drv: driver. */ struct device_driver * get_driver(struct device_driver * drv) { return drv ? to_drv(kobject_get(&drv->kobj)) : NULL; }