/* sysdev_driver_unregister - Remove an auxillary driver. @cls: Class driver belongs to. @drv: Driver.  */
void sysdev_driver_unregister(struct sysdev_class *cls, struct sysdev_driver *drv)
/* sysdev_driver_unregister - Remove an auxillary driver. @cls: Class driver belongs to. @drv: Driver.  */
void sysdev_driver_unregister(struct sysdev_class *cls, struct sysdev_driver *drv)
{
	mutex_lock(&sysdev_drivers_lock);
	list_del_init(&drv->entry);
	if (cls) {
		if (drv->remove) {
			struct sys_device *dev;
			list_for_each_entry(dev, &cls->kset.list, kobj.entry)
				drv->remove(dev);
		}
		kset_put(&cls->kset);
	}
	mutex_unlock(&sysdev_drivers_lock);
}