Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1023034pxf; Thu, 8 Apr 2021 20:19:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzlqdw5zfi7j7/lC11WfP1tYlsDbd48eVlRoS9Ny6N5IgSKZF9kPPysvkVc/bAaJ1kibbnz X-Received: by 2002:a17:906:2349:: with SMTP id m9mr13765671eja.98.1617938365433; Thu, 08 Apr 2021 20:19:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617938365; cv=none; d=google.com; s=arc-20160816; b=ZLO8Aah8Qow5hl3/Z+VJGCn+xFFmMIjvfE3jKxgjqxSLGbEbtNRjeY22qQuAyvtw57 Xi9Y6d22aV7gwirrA5LsesT0RAkTBXYofMw18WqKxJ4Ynj9NqW6skT7LaULOfSUXgyJ5 EvGOT5SuCD5B3QiF6tof3lMA/wzIPJlOE2eUa+yoaTILXi7MTReIePrrT/cczWl+gHI+ AVXFJViJZLy4WPWNo2arTlnol1A8QjwTND23YwJ+0OebIJR/p/3YA7WeUqmeUXmWWXuf VfWDeInnwoz3EL/R/CXg4aKBAe7Mvx0uelkN14ZYQovxddrJPMEqDjA4/ZdY6wl5rXy7 m51Q== 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:dkim-signature:dkim-filter; bh=nRXeibRU4AcCoB24uvxQcso/vauounCB7Cy+XT2rzsI=; b=oHu+OE2/W96yyQyNfxzCCPtFMHimN5gf3quZ/X14z/CABnIUx3+4mdBsnRFBtKu+LQ lZJf6jV3mkkuPadPt5OHNpCtseny4WzdnemA7G7DNlomqY3AraV4FewNFCdvZu6SSb+W fuFOsNncQSHfufdgosf5zmcZb9Wspid67HH2zNu+yCvZvHWq8R/GbD9C/Rv187CuOodk H1mhn64TYj4+wf4sR9S8beXdxLsoZrulKY42y+K+54/vNNOInYxs/YpFY+2XwSlVg67W zNPw3ceS2WIChGUqszCnv8WTP4eDbDA6/31ZzAWj9OSv4NCxtmZDM5wWw6eEgwO2LK8g n04Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=VubqTYkR; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id hp26si1089218ejc.209.2021.04.08.20.19.02; Thu, 08 Apr 2021 20:19:25 -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; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=VubqTYkR; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233157AbhDIDSQ (ORCPT + 99 others); Thu, 8 Apr 2021 23:18:16 -0400 Received: from conssluserg-05.nifty.com ([210.131.2.90]:61345 "EHLO conssluserg-05.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233083AbhDIDSO (ORCPT ); Thu, 8 Apr 2021 23:18:14 -0400 X-Greylist: delayed 22695 seconds by postgrey-1.27 at vger.kernel.org; Thu, 08 Apr 2021 23:18:12 EDT Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (authenticated) by conssluserg-05.nifty.com with ESMTP id 1393HgZa023146; Fri, 9 Apr 2021 12:17:42 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-05.nifty.com 1393HgZa023146 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1617938262; bh=nRXeibRU4AcCoB24uvxQcso/vauounCB7Cy+XT2rzsI=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=VubqTYkRf4d5Up7TWCG9toaQseeku33piHD4ogq2gNSVmWkJd3z+EAeqSDxMrQuVc YxrmhZjriQ0JSqFRx/nQX781uIWMZ1vs6FIN9iJAwzgvaL7MaWBbO1MAnuFvIwfF27 beESDMnlEEZKFDvqdPM2+L4x7c0Lja37o6yrvN9HJzQCvU0xi8mx7FhafayQs8lS/k UlvzLHOPkLDS+PO3jrCWMmL0O0Xn2K9z2Syov+7ts0Lp3W4SVoLurFETGoUZU4jjsO 2VcWolwAGzP5qSxZ9cng7K3/r9Ymu5wxr7bZvwRIqnRhwAkCoiYryAuCYEeCc7r8n8 y4G4Qki3Nxs/g== X-Nifty-SrcIP: [209.85.216.50] Received: by mail-pj1-f50.google.com with SMTP id i4so2200152pjk.1; Thu, 08 Apr 2021 20:17:42 -0700 (PDT) X-Gm-Message-State: AOAM531SobHQV1ZUx4ZRFE+Jn2qylXaNhDcaj2GAIm2PHF08YkvCHIay dfj75FAUtZIo+pP/ClUMTA140CAb5klLMEivim8= X-Received: by 2002:a17:90a:1056:: with SMTP id y22mr11010180pjd.153.1617938261656; Thu, 08 Apr 2021 20:17:41 -0700 (PDT) MIME-Version: 1.0 References: <20210408205858.51751-1-masahiroy@kernel.org> <20210408205858.51751-3-masahiroy@kernel.org> In-Reply-To: From: Masahiro Yamada Date: Fri, 9 Apr 2021 12:17:04 +0900 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: Arnd Bergmann 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" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 9, 2021 at 6:30 AM Arnd Bergmann wrote: > > 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 Agh, you are right. We cannot change all the callsites atomically due to the huge amount of users. -- Best Regards Masahiro Yamada