On 12/08/2022 20:52, Florian Fainelli wrote: >>> unless you also implied enclosing those functions under an #if >>> IS_ENABLED(CONFIG_PM) or something which is IMHO less preferable. >> >> Are you sure you added also pm_ptr()? I don't see such warnings with W=1 >> and final object does not have the functions (for a different driver but >> same principle). > > Yes I am sure I added pm_ptr() see the v4 I just submitted. I don't see > how the compiler cannot warn about the functions being unused the day > they stop being referenced by the pm_ops structure which is eliminated? I don't have the answer how it exactly works (or which gcc version introduced it), but I tested it and the functions were not present in the object file, thus of course no warnings. The driver change I am referring to is: https://lore.kernel.org/all/20220808174107.38676-15-paul@xxxxxxxxxxxxxxx/ I think the only difference against your v4 is: DEFINE_SIMPLE_DEV_PM_OPS and lack of __maybe_unused on the functions. The DEFINE_SIMPLE_DEV_PM_OPS itself adds __maybe_unused for !CONFIG_PM case, but I don't think it is relevant. Best regards, Krzysztof