mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 06:10:56 +00:00
driver core: bus: bus_register/unregister_notifier() cleanups
Convert the bus_register_notifier() and bus_unregister_notifier() public functions to use bus_to_subsys() and not use the back-pointer to the private structure as well as the bus_notify() function. Cc: "Rafael J. Wysocki" <rafael@kernel.org> Link: https://lore.kernel.org/r/20230208111330.439504-11-gregkh@linuxfoundation.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
beea7892d4
commit
32a8121a19
1 changed files with 23 additions and 5 deletions
|
@ -936,22 +936,40 @@ EXPORT_SYMBOL_GPL(bus_unregister);
|
|||
|
||||
int bus_register_notifier(struct bus_type *bus, struct notifier_block *nb)
|
||||
{
|
||||
return blocking_notifier_chain_register(&bus->p->bus_notifier, nb);
|
||||
struct subsys_private *sp = bus_to_subsys(bus);
|
||||
int retval;
|
||||
|
||||
if (!sp)
|
||||
return -EINVAL;
|
||||
|
||||
retval = blocking_notifier_chain_register(&sp->bus_notifier, nb);
|
||||
subsys_put(sp);
|
||||
return retval;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(bus_register_notifier);
|
||||
|
||||
int bus_unregister_notifier(struct bus_type *bus, struct notifier_block *nb)
|
||||
{
|
||||
return blocking_notifier_chain_unregister(&bus->p->bus_notifier, nb);
|
||||
struct subsys_private *sp = bus_to_subsys(bus);
|
||||
int retval;
|
||||
|
||||
if (!sp)
|
||||
return -EINVAL;
|
||||
retval = blocking_notifier_chain_unregister(&sp->bus_notifier, nb);
|
||||
subsys_put(sp);
|
||||
return retval;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(bus_unregister_notifier);
|
||||
|
||||
void bus_notify(struct device *dev, enum bus_notifier_event value)
|
||||
{
|
||||
struct bus_type *bus = dev->bus;
|
||||
struct subsys_private *sp = bus_to_subsys(dev->bus);
|
||||
|
||||
if (bus)
|
||||
blocking_notifier_call_chain(&bus->p->bus_notifier, value, dev);
|
||||
if (!sp)
|
||||
return;
|
||||
|
||||
blocking_notifier_call_chain(&sp->bus_notifier, value, dev);
|
||||
subsys_put(sp);
|
||||
}
|
||||
|
||||
struct kset *bus_get_kset(struct bus_type *bus)
|
||||
|
|
Loading…
Reference in a new issue