drivers/acpi/platform_profile.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
If class_find_device() finds a device it's reference count is
incremented. Call put_device() to drop this reference before returning.
Fixes: 77be5cacb2c2 ("ACPI: platform_profile: Create class for ACPI platform profile")
Signed-off-by: Kurt Borja <kuurtb@gmail.com>
---
drivers/acpi/platform_profile.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
index fc92e43d0fe9..2ad53cc6aae5 100644
--- a/drivers/acpi/platform_profile.c
+++ b/drivers/acpi/platform_profile.c
@@ -417,8 +417,14 @@ static int profile_class_registered(struct device *dev, const void *data)
static umode_t profile_class_is_visible(struct kobject *kobj, struct attribute *attr, int idx)
{
- if (!class_find_device(&platform_profile_class, NULL, NULL, profile_class_registered))
+ struct device *dev;
+
+ dev = class_find_device(&platform_profile_class, NULL, NULL, profile_class_registered);
+ if (!dev)
return 0;
+
+ put_device(dev);
+
return attr->mode;
}
base-commit: 3e3e377dd1f300bbdd230533686ce9c9f4f8a90d
--
2.48.1
On Wed, Feb 12, 2025, at 2:30 PM, Kurt Borja wrote:
> If class_find_device() finds a device it's reference count is
> incremented. Call put_device() to drop this reference before returning.
>
> Fixes: 77be5cacb2c2 ("ACPI: platform_profile: Create class for ACPI
> platform profile")
> Signed-off-by: Kurt Borja <kuurtb@gmail.com>
> ---
> drivers/acpi/platform_profile.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/platform_profile.c
> b/drivers/acpi/platform_profile.c
> index fc92e43d0fe9..2ad53cc6aae5 100644
> --- a/drivers/acpi/platform_profile.c
> +++ b/drivers/acpi/platform_profile.c
> @@ -417,8 +417,14 @@ static int profile_class_registered(struct device
> *dev, const void *data)
>
> static umode_t profile_class_is_visible(struct kobject *kobj, struct
> attribute *attr, int idx)
> {
> - if (!class_find_device(&platform_profile_class, NULL, NULL,
> profile_class_registered))
> + struct device *dev;
> +
> + dev = class_find_device(&platform_profile_class, NULL, NULL,
> profile_class_registered);
> + if (!dev)
> return 0;
> +
> + put_device(dev);
> +
> return attr->mode;
> }
>
>
> base-commit: 3e3e377dd1f300bbdd230533686ce9c9f4f8a90d
> --
> 2.48.1
Good find. Looks good to me.
Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Mark
On Sat, Feb 15, 2025 at 3:18 AM Mark Pearson <mpearson-lenovo@squebb.ca> wrote:
>
>
> On Wed, Feb 12, 2025, at 2:30 PM, Kurt Borja wrote:
> > If class_find_device() finds a device it's reference count is
> > incremented. Call put_device() to drop this reference before returning.
> >
> > Fixes: 77be5cacb2c2 ("ACPI: platform_profile: Create class for ACPI
> > platform profile")
> > Signed-off-by: Kurt Borja <kuurtb@gmail.com>
> > ---
> > drivers/acpi/platform_profile.c | 8 +++++++-
> > 1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/acpi/platform_profile.c
> > b/drivers/acpi/platform_profile.c
> > index fc92e43d0fe9..2ad53cc6aae5 100644
> > --- a/drivers/acpi/platform_profile.c
> > +++ b/drivers/acpi/platform_profile.c
> > @@ -417,8 +417,14 @@ static int profile_class_registered(struct device
> > *dev, const void *data)
> >
> > static umode_t profile_class_is_visible(struct kobject *kobj, struct
> > attribute *attr, int idx)
> > {
> > - if (!class_find_device(&platform_profile_class, NULL, NULL,
> > profile_class_registered))
> > + struct device *dev;
> > +
> > + dev = class_find_device(&platform_profile_class, NULL, NULL,
> > profile_class_registered);
> > + if (!dev)
> > return 0;
> > +
> > + put_device(dev);
> > +
> > return attr->mode;
> > }
> >
> >
> > base-commit: 3e3e377dd1f300bbdd230533686ce9c9f4f8a90d
> > --
> > 2.48.1
> Good find. Looks good to me.
> Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Applied as 6.15 material, thanks!
On Tue Feb 18, 2025 at 1:07 PM -05, Rafael J. Wysocki wrote:
> On Sat, Feb 15, 2025 at 3:18 AM Mark Pearson <mpearson-lenovo@squebb.ca> wrote:
>>
>>
>> On Wed, Feb 12, 2025, at 2:30 PM, Kurt Borja wrote:
>> > If class_find_device() finds a device it's reference count is
>> > incremented. Call put_device() to drop this reference before returning.
>> >
>> > Fixes: 77be5cacb2c2 ("ACPI: platform_profile: Create class for ACPI
>> > platform profile")
>> > Signed-off-by: Kurt Borja <kuurtb@gmail.com>
>> > ---
>> > drivers/acpi/platform_profile.c | 8 +++++++-
>> > 1 file changed, 7 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/acpi/platform_profile.c
>> > b/drivers/acpi/platform_profile.c
>> > index fc92e43d0fe9..2ad53cc6aae5 100644
>> > --- a/drivers/acpi/platform_profile.c
>> > +++ b/drivers/acpi/platform_profile.c
>> > @@ -417,8 +417,14 @@ static int profile_class_registered(struct device
>> > *dev, const void *data)
>> >
>> > static umode_t profile_class_is_visible(struct kobject *kobj, struct
>> > attribute *attr, int idx)
>> > {
>> > - if (!class_find_device(&platform_profile_class, NULL, NULL,
>> > profile_class_registered))
>> > + struct device *dev;
>> > +
>> > + dev = class_find_device(&platform_profile_class, NULL, NULL,
>> > profile_class_registered);
>> > + if (!dev)
>> > return 0;
>> > +
>> > + put_device(dev);
>> > +
>> > return attr->mode;
>> > }
>> >
>> >
>> > base-commit: 3e3e377dd1f300bbdd230533686ce9c9f4f8a90d
>> > --
>> > 2.48.1
>> Good find. Looks good to me.
>> Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
>
> Applied as 6.15 material, thanks!
Hi Rafael,
Thank you!
I believe this should be merged as a fix for v6.14-rc4 before
commit 77be5cacb2c2 hits stable.
--
~ Kurt
On Tue, Feb 18, 2025 at 7:18 PM Kurt Borja <kuurtb@gmail.com> wrote:
>
> On Tue Feb 18, 2025 at 1:07 PM -05, Rafael J. Wysocki wrote:
> > On Sat, Feb 15, 2025 at 3:18 AM Mark Pearson <mpearson-lenovo@squebb.ca> wrote:
> >>
> >>
> >> On Wed, Feb 12, 2025, at 2:30 PM, Kurt Borja wrote:
> >> > If class_find_device() finds a device it's reference count is
> >> > incremented. Call put_device() to drop this reference before returning.
> >> >
> >> > Fixes: 77be5cacb2c2 ("ACPI: platform_profile: Create class for ACPI
> >> > platform profile")
> >> > Signed-off-by: Kurt Borja <kuurtb@gmail.com>
> >> > ---
> >> > drivers/acpi/platform_profile.c | 8 +++++++-
> >> > 1 file changed, 7 insertions(+), 1 deletion(-)
> >> >
> >> > diff --git a/drivers/acpi/platform_profile.c
> >> > b/drivers/acpi/platform_profile.c
> >> > index fc92e43d0fe9..2ad53cc6aae5 100644
> >> > --- a/drivers/acpi/platform_profile.c
> >> > +++ b/drivers/acpi/platform_profile.c
> >> > @@ -417,8 +417,14 @@ static int profile_class_registered(struct device
> >> > *dev, const void *data)
> >> >
> >> > static umode_t profile_class_is_visible(struct kobject *kobj, struct
> >> > attribute *attr, int idx)
> >> > {
> >> > - if (!class_find_device(&platform_profile_class, NULL, NULL,
> >> > profile_class_registered))
> >> > + struct device *dev;
> >> > +
> >> > + dev = class_find_device(&platform_profile_class, NULL, NULL,
> >> > profile_class_registered);
> >> > + if (!dev)
> >> > return 0;
> >> > +
> >> > + put_device(dev);
> >> > +
> >> > return attr->mode;
> >> > }
> >> >
> >> >
> >> > base-commit: 3e3e377dd1f300bbdd230533686ce9c9f4f8a90d
> >> > --
> >> > 2.48.1
> >> Good find. Looks good to me.
> >> Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
> >
> > Applied as 6.15 material, thanks!
>
> Hi Rafael,
>
> Thank you!
>
> I believe this should be merged as a fix for v6.14-rc4 before
> commit 77be5cacb2c2 hits stable.
I can queue it up for 6.14-rc, but that may not prevent 77be5cacb2c2
from going into -stable before it.
Thanks!
© 2016 - 2025 Red Hat, Inc.