Thanks Ilpo, On Fri, Apr 12, 2024, at 9:09 AM, Ilpo Järvinen wrote: > The macros to_tlmi_pwd_setting() and to_tlmi_attr_setting() are fragile > because they expect the variable name to be 'kobj', otherwise the build > will fail because container_of()'s 3rd parameter (member) is taken from > the parameter given to the macro. > > While at it, move them into a more logical place. > > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> > --- > drivers/platform/x86/think-lmi.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/drivers/platform/x86/think-lmi.c > b/drivers/platform/x86/think-lmi.c > index 9345316b45db..0f2264bb7577 100644 > --- a/drivers/platform/x86/think-lmi.c > +++ b/drivers/platform/x86/think-lmi.c > @@ -175,9 +175,6 @@ MODULE_PARM_DESC(debug_support, "Enable debug > command support"); > #define TLMI_SMP_PWD BIT(6) /* System Management */ > #define TLMI_CERT BIT(7) /* Certificate Based */ > > -#define to_tlmi_pwd_setting(kobj) container_of(kobj, struct > tlmi_pwd_setting, kobj) > -#define to_tlmi_attr_setting(kobj) container_of(kobj, struct > tlmi_attr_setting, kobj) > - > static const struct tlmi_err_codes tlmi_errs[] = { > {"Success", 0}, > {"Not Supported", -EOPNOTSUPP}, > @@ -198,6 +195,16 @@ static struct think_lmi tlmi_priv; > static const struct class *fw_attr_class; > static DEFINE_MUTEX(tlmi_mutex); > > +static inline struct tlmi_pwd_setting *to_tlmi_pwd_setting(struct > kobject *kobj) > +{ > + return container_of(kobj, struct tlmi_pwd_setting, kobj); > +} > + > +static inline struct tlmi_attr_setting *to_tlmi_attr_setting(struct > kobject *kobj) > +{ > + return container_of(kobj, struct tlmi_attr_setting, kobj); > +} > + > /* Convert BIOS WMI error string to suitable error code */ > static int tlmi_errstr_to_err(const char *errstr) > { > -- > 2.39.2 Looks good to me. Let me know if you want this tested on Lenovo HW and I'll do a build with this in - but it looks very uncontroversial :) Reviewed-by Mark Pearson <mpearson-lenovo@xxxxxxxxxx>