Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp856642pxf; Thu, 8 Apr 2021 14:31:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwdJsFHj78yfBBgb1Ausfd8UcOPUrMNz8Jcisj9hEB5XbgFosusX3vxR4unqvz8OQXu019T X-Received: by 2002:a17:906:8591:: with SMTP id v17mr13209279ejx.260.1617917498756; Thu, 08 Apr 2021 14:31:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617917498; cv=none; d=google.com; s=arc-20160816; b=ygtlhDl9JeiHpojugAoa+Tsr3sDjWj2bKuYdoPbzQHUBxFk6v/D+a42zKpf//nEOxI VKbdZYS7WXvC1p1rG8e3lkP7MnkbSA/iI6EdQXbQSFJIvAY3c+M5r42MUMgmdFNtd8Ln pMKXCQUSLlJXV/2m1U7SZve7oCx3wmzSUMGchDVuOYBYyso4IRtEB6n2rfRsvbsea7cG WKBbi5WZoAOnOl/kdGwtUOuKQnpGGBfqqK5KcGVrPgz6YZa0Qv4fIXJxa65lN3orT1uX lSMIvbDYt6WaeaImqnzjaDkpaMUsFH06MpgkxALqabQzx7Dhun88xBLCOp2GJRu8QyoT D9eA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=TixhZna/ZM0bVyXw/LzdbXLZauIHMQTMFaNp9WY4O+Q=; b=CEnDm1bBRyhcmoFAHTd7Rs9J5NqHvhtYqOmUzUU8aWM5+bAhiIt+P1dMQzS5GX1ig5 7V3qRLSHSKqyC50nDGNJUJJ/aJf6y8teweEZi6s4JnKehV9R0uct/C39dpZxBtnJ/Pmt /9VWhQ85VD3F27xJAsEZBV2dkgTfnoJyKb0OZdnhDSjvyBuM5YsbDs10SvsiGf++lPVs PZ0/q2r3t5YskxOZh/tPQfvmHC1ssa19JBOHwd4kYRDFgmzpRCCh0J3SBShExYNnmEaN hL3JDGTS+R+ype9tvzAMcLU7HJty+oaLzgS9tT5Xkv66NEygkHD/mz9nF2AataepH1od QlKA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h26si644953edr.563.2021.04.08.14.31.15; Thu, 08 Apr 2021 14:31:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232599AbhDHVaR (ORCPT + 99 others); Thu, 8 Apr 2021 17:30:17 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:33739 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232265AbhDHVaQ (ORCPT ); Thu, 8 Apr 2021 17:30:16 -0400 Received: from mail-oi1-f171.google.com ([209.85.167.171]) by mrelayeu.kundenserver.de (mreue108 [213.165.67.113]) with ESMTPSA (Nemesis) id 1Mdvua-1m2IY91N0o-00aztr; Thu, 08 Apr 2021 23:30:03 +0200 Received: by mail-oi1-f171.google.com with SMTP id 25so2208171oiy.5; Thu, 08 Apr 2021 14:30:02 -0700 (PDT) X-Gm-Message-State: AOAM533YXAP+6RI8auigr7sjDj79+QpWQizW2MzwVNhTcD/2iBI6x6aY QG1skkgj09cpcgUgwRmS9EA9s9WdGg/jPZZMhXE= X-Received: by 2002:a05:6808:313:: with SMTP id i19mr7492382oie.67.1617917401802; Thu, 08 Apr 2021 14:30:01 -0700 (PDT) MIME-Version: 1.0 References: <20210408205858.51751-1-masahiroy@kernel.org> <20210408205858.51751-3-masahiroy@kernel.org> In-Reply-To: <20210408205858.51751-3-masahiroy@kernel.org> From: Arnd Bergmann Date: Thu, 8 Apr 2021 23:29:45 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/2] pm: allow drivers to drop #ifdef and __maybe_unused from pm callbacks To: Masahiro Yamada Cc: Linux Kbuild mailing list , "open list:GPIO SUBSYSTEM" , Paul Cercueil , Len Brown , Pavel Machek , "Rafael J. Wysocki" , Linux Kernel Mailing List , Linux PM list Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:jBCef5MBplAyhl76VQF9Oz/gsjkGI646Ek39SGM6gF/9FUydqP3 RKHFm6nBVAILMMau+SlIBizvt+Uf9D8nj4jJp33wo6W7MfUlWzCZK286b9ZAlhsRVK7vOTR U7Zsyy71yKPhIXd5BQnuUc4B+neTcrY4EjxxjS+qLg6gzp/K/KXofiXLaVHfZBEdiRyyLY2 WBg+6e8lH5pKKbO85xIcA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:yD+w5GzQUF8=:65dIGNT0YpnNeLFMR/yjE3 tiuRIXRgv3lLwhO9WqBhDuGerF4/u5KyJsgKJuQFBqpliwXtuRq4SYL82x8kcSesnus9yX1sB Jdw6lR3JevWjGdCJMwmfieS5K5KgRFD4rpTJ2ec9RQN2po7S4qoYVLgU8Q0VKLtS3ytfyWcu8 6x+MEBAG3XxaC/yaOovdpsDmHG4N0lAX+HRla7hW3lGBHnnWCgG635ObrDZSgVaxJrXs5uaa2 F91TK+J8x0EfjHlVX5S6zdvspXa+QyjPHw28hncPWb4IuGLjtxwKYRoUKyHXno+7q91YyXOrO vqdbigPo0y1nHeWzzZOo9uIlg3J1bpoktX197AZyMK/nFSQb55N3np17RXtOmth3IK1Btzn/P IILhDErrxS4zg6LedNHqAnT5e+1/qxg8Y1umMG4L/QA7E+8dTd5gFdH7QzXs0s1sewfXYFV2u WvQapsBUWn3ZG781mT/zCl1DR0rxYao= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 8, 2021 at 11:00 PM Masahiro Yamada wrote: > > Drivers typically surround suspend and resume callbacks with #ifdef > CONFIG_PM(_SLEEP) or mark them as __maybe_unused in order to avoid > -Wunused-const-variable warnings. > > With this commit, drivers will be able to remove #ifdef CONFIG_PM(_SLEEP) > and __maybe_unsed because unused functions are dropped by the compiler > instead of the preprocessor. > > Signed-off-by: Masahiro Yamada I tried this before and could not get it to work right. > > -#ifdef CONFIG_PM_SLEEP > +#define pm_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM), _ptr) > +#define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), _ptr) > + > #define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \ > - .suspend = suspend_fn, \ > - .resume = resume_fn, \ > - .freeze = suspend_fn, \ > - .thaw = resume_fn, \ > - .poweroff = suspend_fn, \ > - .restore = resume_fn, > -#else > -#define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) > -#endif > + .suspend = pm_sleep_ptr(suspend_fn), \ > + .resume = pm_sleep_ptr(resume_fn), \ > + .freeze = pm_sleep_ptr(suspend_fn), \ > + .thaw = pm_sleep_ptr(resume_fn), \ > + .poweroff = pm_sleep_ptr(suspend_fn), \ > + .restore = pm_sleep_ptr(resume_fn), The problem that I think you inevitably hit is that you run into a missing declaration for any driver that still uses an #ifdef around a static function. The only way I can see us doing this is to create a new set of macros that behave like the version you propose here but leave the old macros in place until the last such #ifdef has been removed. Arnd