From: Takashi Iwai <tiwai@suse.de>
Use the newly introduced class macro to simplify the code.
Also, add the proper error handling for the PM runtime get errors.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250919163147.4743-3-tiwai@suse.de
[ rjw: Adjusted the subject and the name of the class ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
v2 -> v3: No changes
v1 -> v2:
* Adjust the name of the class to handle the disabled runtime PM case
transparently (like the original code).
---
drivers/pci/pci-sysfs.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -1475,8 +1475,9 @@ static ssize_t reset_method_store(struct
return count;
}
- pm_runtime_get_sync(dev);
- struct device *pmdev __free(pm_runtime_put) = dev;
+ CLASS(pm_runtime_get_active, pmdev)(dev);
+ if (IS_ERR(pmdev))
+ return -ENXIO;
if (sysfs_streq(buf, "default")) {
pci_init_reset_methods(pdev);
On Mon, Sep 22, 2025 at 05:31:53PM +0200, Rafael J. Wysocki wrote:
> From: Takashi Iwai <tiwai@suse.de>
>
> Use the newly introduced class macro to simplify the code.
>
> Also, add the proper error handling for the PM runtime get errors.
>
> Signed-off-by: Takashi Iwai <tiwai@suse.de>
> Link: https://patch.msgid.link/20250919163147.4743-3-tiwai@suse.de
> [ rjw: Adjusted the subject and the name of the class ]
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> ---
>
> v2 -> v3: No changes
>
> v1 -> v2:
> * Adjust the name of the class to handle the disabled runtime PM case
> transparently (like the original code).
>
> ---
> drivers/pci/pci-sysfs.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> --- a/drivers/pci/pci-sysfs.c
> +++ b/drivers/pci/pci-sysfs.c
> @@ -1475,8 +1475,9 @@ static ssize_t reset_method_store(struct
> return count;
> }
>
> - pm_runtime_get_sync(dev);
> - struct device *pmdev __free(pm_runtime_put) = dev;
> + CLASS(pm_runtime_get_active, pmdev)(dev);
> + if (IS_ERR(pmdev))
> + return -ENXIO;
>
> if (sysfs_streq(buf, "default")) {
> pci_init_reset_methods(pdev);
>
>
>
On Mon, 22 Sep 2025 13:50:36 -0500
Bjorn Helgaas <helgaas@kernel.org> wrote:
> On Mon, Sep 22, 2025 at 05:31:53PM +0200, Rafael J. Wysocki wrote:
> > From: Takashi Iwai <tiwai@suse.de>
> >
> > Use the newly introduced class macro to simplify the code.
> >
> > Also, add the proper error handling for the PM runtime get errors.
> >
> > Signed-off-by: Takashi Iwai <tiwai@suse.de>
> > Link: https://patch.msgid.link/20250919163147.4743-3-tiwai@suse.de
> > [ rjw: Adjusted the subject and the name of the class ]
> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Being half asleep I went and replied to v1 when v2 and indeed this v3
were already out. Sorry about that.
Anyhow question is why not ACQUIRE() and ACQUIRE_ERR()?
original discussion on how those came about rather that direct use of
class that you have here was I think here:
https://lore.kernel.org/all/20250509104028.GL4439@noisy.programming.kicks-ass.net/
Though note, we didn't end up with the parallel universe that is talking about.
+CC Dan,
Jonathan
>
> > ---
> >
> > v2 -> v3: No changes
> >
> > v1 -> v2:
> > * Adjust the name of the class to handle the disabled runtime PM case
> > transparently (like the original code).
> >
> > ---
> > drivers/pci/pci-sysfs.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > --- a/drivers/pci/pci-sysfs.c
> > +++ b/drivers/pci/pci-sysfs.c
> > @@ -1475,8 +1475,9 @@ static ssize_t reset_method_store(struct
> > return count;
> > }
> >
> > - pm_runtime_get_sync(dev);
> > - struct device *pmdev __free(pm_runtime_put) = dev;
> > + CLASS(pm_runtime_get_active, pmdev)(dev);
> > + if (IS_ERR(pmdev))
> > + return -ENXIO;
> >
> > if (sysfs_streq(buf, "default")) {
> > pci_init_reset_methods(pdev);
> >
> >
> >
>
On Fri, Sep 26, 2025 at 4:06 PM Jonathan Cameron <jonathan.cameron@huawei.com> wrote: > > On Mon, 22 Sep 2025 13:50:36 -0500 > Bjorn Helgaas <helgaas@kernel.org> wrote: > > > On Mon, Sep 22, 2025 at 05:31:53PM +0200, Rafael J. Wysocki wrote: > > > From: Takashi Iwai <tiwai@suse.de> > > > > > > Use the newly introduced class macro to simplify the code. > > > > > > Also, add the proper error handling for the PM runtime get errors. > > > > > > Signed-off-by: Takashi Iwai <tiwai@suse.de> > > > Link: https://patch.msgid.link/20250919163147.4743-3-tiwai@suse.de > > > [ rjw: Adjusted the subject and the name of the class ] > > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > > > Acked-by: Bjorn Helgaas <bhelgaas@google.com> > Being half asleep I went and replied to v1 when v2 and indeed this v3 > were already out. Sorry about that. > > Anyhow question is why not ACQUIRE() and ACQUIRE_ERR()? See my reply: https://lore.kernel.org/linux-pm/CAJZ5v0gnqoJ8bALZT61ZvTA=chp8y5QBiA7ZpNQ6fFJuQzZUnA@mail.gmail.com/ I think that it can be done though.
© 2016 - 2025 Red Hat, Inc.