[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9f623bb6-8957-0a9a-3eb7-9a209965ea6e@gmail.com>
Date: Fri, 24 Jun 2022 11:24:01 +0200
From: Arend Van Spriel <aspriel@...il.com>
To: Paul Cercueil <paul@...pouillou.net>,
Franky Lin <franky.lin@...adcom.com>
Cc: linux-wireless@...r.kernel.org,
brcm80211-dev-list.pdl@...adcom.com,
SHA-cyfmac-dev-list@...ineon.com, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] brcmfmac: Remove #ifdef guards for PM related
functions
On 6/23/2022 2:42 PM, Paul Cercueil wrote:
> Use the new DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() macros to
> handle the .suspend/.resume callbacks.
>
> These macros allow the suspend and resume functions to be automatically
> dropped by the compiler when CONFIG_SUSPEND is disabled, without having
> to use #ifdef guards.
>
> Some other functions not directly called by the .suspend/.resume
> callbacks, but still related to PM were also taken outside #ifdef
> guards.
>
> The advantage is then that these functions are now always compiled
> independently of any Kconfig option, and thanks to that bugs and
> regressions are easier to catch.
Reviewed-by: Arend van Spriel <aspriel@...il.com>
> Signed-off-by: Paul Cercueil <paul@...pouillou.net>
> ---
>
> Notes:
> v2:
> - Move checks for IS_ENABLED(CONFIG_PM_SLEEP) inside functions to keep
> the calling functions intact.
> - Reword the commit message to explain why this patch is useful.
>
> .../broadcom/brcm80211/brcmfmac/bcmsdh.c | 38 +++++++------------
> .../broadcom/brcm80211/brcmfmac/sdio.c | 5 +--
> .../broadcom/brcm80211/brcmfmac/sdio.h | 16 --------
> 3 files changed, 16 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> index 9c598ea97499..11ad878a906b 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> @@ -784,9 +784,11 @@ void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev)
> sdiodev->txglomsz = sdiodev->settings->bus.sdio.txglomsz;
> }
>
> -#ifdef CONFIG_PM_SLEEP
> static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev)
> {
> + if (!IS_ENABLED(CONFIG_PM_SLEEP))
> + return 0;
> +
> sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL);
> if (!sdiodev->freezer)
> return -ENOMEM;
> @@ -799,7 +801,7 @@ static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev)
>
> static void brcmf_sdiod_freezer_detach(struct brcmf_sdio_dev *sdiodev)
> {
> - if (sdiodev->freezer) {
> + if (IS_ENABLED(CONFIG_PM_SLEEP) && sdiodev->freezer) {
This change is not necessary. sdiodev->freezer will be NULL when
CONFIG_PM_SLEEP is not enabled.
> WARN_ON(atomic_read(&sdiodev->freezer->freezing));
> kfree(sdiodev->freezer);
> }
Powered by blists - more mailing lists