Hi Greg, On 2/2/24 03:44, Greg Kroah-Hartman wrote: > The use of devm_*() functions works properly for when the device > structure itself is dynamic, but the hsmp driver is attempting to have a > local, static, struct device and then calls devm_() functions attaching > memory to the device that will never be freed. As I mentioned in my reply to v1, this is not correct. There is a global data struct, but that holds a struct device pointer, not the device struct. The device itself is created with platform_device_alloc() + platform_device_add() from module-init and it is removed on module-exit by calling platform_device_unregister() So AFAICT this should keep using the devm_ variant to properly cleanup the sysfs attributes. But what this really needs is to be converted to using amd_hsmp_driver.driver.dev_groups rather then manually calling devm_device_add_groups() I have already asked Suma Hegde (AMD) to take a look at this. Regards, Hans > > The logic of having a static struct device is almost never a wise > choice, but for now, just remove the use of devm_device_add_groups() in > this driver as it obviously is not needed. > > Cc: Naveen Krishna Chatradhi <naveenkrishna.chatradhi@xxxxxxx> > Cc: Carlos Bilbao <carlos.bilbao@xxxxxxx> > Cc: Hans de Goede <hdegoede@xxxxxxxxxx> > Cc: "Ilpo Järvinen" <ilpo.jarvinen@xxxxxxxxxxxxxxx> > Cc: platform-driver-x86@xxxxxxxxxxxxxxx > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > --- > v2: rebased against platform/for-next > > drivers/platform/x86/amd/hsmp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c > index 1927be901108..d84ea66eecc6 100644 > --- a/drivers/platform/x86/amd/hsmp.c > +++ b/drivers/platform/x86/amd/hsmp.c > @@ -693,7 +693,7 @@ static int hsmp_create_non_acpi_sysfs_if(struct device *dev) > hsmp_create_attr_list(attr_grp, dev, i); > } > > - return devm_device_add_groups(dev, hsmp_attr_grps); > + return device_add_groups(dev, hsmp_attr_grps); > } > > static int hsmp_create_acpi_sysfs_if(struct device *dev)