On Mon, Jul 18, 2022 at 6:14 PM Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > On Mon, Jul 18, 2022 at 02:42:16PM +0200, Arnd Bergmann wrote: > > Might be simpler, but wow, it's hard to keep up with all the > permutations of sleep ops ;) > > Unfortunately 1a3c7bb08826 ("PM: core: Add new *_PM_OPS macros, > deprecate old ones"), which added NOIRQ_SYSTEM_SLEEP_PM_OPS, didn't > add any hints near SET_NOIRQ_SYSTEM_SLEEP_PM_OPS. > > We have several PCI controller drivers that use the "#ifdef > CONFIG_PM_SLEEP" and SET_NOIRQ_SYSTEM_SLEEP_PM_OPS pattern or the > "__maybe_unused" + SET_NOIRQ_SYSTEM_SLEEP_PM_OPS pattern. I guess we > need to look at all of them and figure out the best practice. Yes, this is a larger effort. It's been under discussion for many years until we could agree on a nicer way to handle this and avoid both the #ifdef and the __maybe_unused annotations. There are hundreds of drivers using the older patterns, and I think there is an effort to address them one subsystem at a time, whenever someone finds the time. Arnd