From: Greg Kroah-Hartman Date: Wed, 8 Feb 2023 11:13:10 +0000 (+0100) Subject: driver core: add local subsys_get and subsys_put functions X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=789be03a600842ef461968cc5a2d458f51f319b2;p=linux.git driver core: add local subsys_get and subsys_put functions We need to control the reference count of the subsys private structure instead of directly manipulating the kset reference count of it, so wrap that logic up in a subsys_get() and subsys_put() function to make it more obvious as to what is happening. Cc: "Rafael J. Wysocki" Link: https://lore.kernel.org/r/20230208111330.439504-2-gregkh@linuxfoundation.org Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/base/base.h b/drivers/base/base.h index 0e806f6410790..9e06c18c7a644 100644 --- a/drivers/base/base.h +++ b/drivers/base/base.h @@ -57,6 +57,19 @@ struct subsys_private { }; #define to_subsys_private(obj) container_of_const(obj, struct subsys_private, subsys.kobj) +static inline struct subsys_private *subsys_get(struct subsys_private *sp) +{ + if (sp) + kset_get(&sp->subsys); + return sp; +} + +static inline void subsys_put(struct subsys_private *sp) +{ + if (sp) + kset_put(&sp->subsys); +} + struct driver_private { struct kobject kobj; struct klist klist_devices;