Re: [PATCH 0/5] Rework pm_ptr() and *_PM_OPS macros

From: Arnd Bergmann
Date: Tue Dec 07 2021 - 04:22:48 EST


On Tue, Dec 7, 2021 at 1:20 AM Paul Cercueil <paul@xxxxxxxxxxxxxxx> wrote:
>
> This patchset reworks the pm_ptr() macro I introduced a few versions
> ago, so that it is not conditionally defined.
>
> It applies the same treatment to the *_PM_OPS macros. Instead of
> modifying the existing ones, which would mean a 2000+ patch bomb, this
> patchset introduce two new macros to replace the now deprecated
> UNIVERSAL_DEV_PM_OPS() and SIMPLE_DEV_PM_OPS().
>
> The point of all of this, is to progressively switch from a code model
> where PM callbacks are all protected behind CONFIG_PM guards, to a code
> model where PM callbacks are always seen by the compiler, but discarded
> if not used.
>
> Patch [4/5] and [5/5] are just examples to illustrate the use of the new
> macros. As such they don't really have to be merged at the same time as
> the rest and can be delayed until a subsystem-wide patchset is proposed.
>
> - Patch [4/5] modifies a driver that already used the pm_ptr() macro,
> but had to use the __maybe_unused flag to avoid compiler warnings;
> - Patch [5/5] modifies a driver that used a #ifdef CONFIG_PM guard
> around its suspend/resume functions.

This is fantastic, I love the new naming and it should provide a great path
towards converting all drivers eventually. I've added the patches to
my randconfig test build box to see if something breaks, but otherwise
I think these are ready to get into linux-next, at least patches 1-3,
so subsystem
maintainers can start queuing up the conversion patches once the
initial set is merged.

Reviewed-by: Arnd Bergmann <arnd@xxxxxxxx>