might_sleep();
- if (!try_module_get(THIS_MODULE))
- return -ENODEV;
-
mutex_lock(&lock);
list_for_each_entry(tmp, &producers, node) {
return 0;
out_err:
mutex_unlock(&lock);
- module_put(THIS_MODULE);
return ret;
}
EXPORT_SYMBOL_GPL(irq_bypass_register_producer);
might_sleep();
- if (!try_module_get(THIS_MODULE))
- return; /* nothing in the list anyway */
-
mutex_lock(&lock);
list_for_each_entry(tmp, &producers, node) {
}
list_del(&producer->node);
- module_put(THIS_MODULE);
break;
}
mutex_unlock(&lock);
-
- module_put(THIS_MODULE);
}
EXPORT_SYMBOL_GPL(irq_bypass_unregister_producer);
might_sleep();
- if (!try_module_get(THIS_MODULE))
- return -ENODEV;
-
mutex_lock(&lock);
list_for_each_entry(tmp, &consumers, node) {
return 0;
out_err:
mutex_unlock(&lock);
- module_put(THIS_MODULE);
return ret;
}
EXPORT_SYMBOL_GPL(irq_bypass_register_consumer);
might_sleep();
- if (!try_module_get(THIS_MODULE))
- return; /* nothing in the list anyway */
-
mutex_lock(&lock);
list_for_each_entry(tmp, &consumers, node) {
}
list_del(&consumer->node);
- module_put(THIS_MODULE);
break;
}
mutex_unlock(&lock);
-
- module_put(THIS_MODULE);
}
EXPORT_SYMBOL_GPL(irq_bypass_unregister_consumer);