[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACRpkdb=dB2y_AtmMWOt0FAyLBFrJNCSqZrWGn97ciVTwLnbBw@mail.gmail.com>
Date: Mon, 8 May 2023 08:12:46 +0200
From: Linus Walleij <linus.walleij@...aro.org>
To: Junyan Ye <yejunyan@...t.edu.cn>
Cc: Lorenzo Pieralisi <lpieralisi@...nel.org>,
Krzysztof Wilczyński <kw@...ux.com>,
Rob Herring <robh@...nel.org>,
Bjorn Helgaas <bhelgaas@...gle.com>,
Wei Yongjun <weiyongjun1@...wei.com>,
Andrew Murray <amurray@...goodpenguin.co.uk>,
hust-os-kernel-patches@...glegroups.com,
Dongliang Mu <dzm91@...t.edu.cn>, linux-pci@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3] pci: controller: pci-ftpci100: Release the clock resources
On Mon, May 8, 2023 at 6:41 AM Junyan Ye <yejunyan@...t.edu.cn> wrote:
> Smatch reported:
> 1. drivers/pci/controller/pci-ftpci100.c:526 faraday_pci_probe() warn:
> 'clk' from clk_prepare_enable() not released on lines: 442,451,462,478,512,517.
> 2. drivers/pci/controller/pci-ftpci100.c:526 faraday_pci_probe() warn:
> 'p->bus_clk' from clk_prepare_enable() not released on lines: 451,462,478,512,517.
>
> The clock resource is obtained by devm_clk_get(), and then
> clk_prepare_enable() makes the clock resource ready for use. After that,
> clk_disable_unprepare() should be called to release the clock resource
> when it is no longer needed. However, while doing some error handling
> in faraday_pci_probe(), clk_disable_unprepare() is not called to release
> clk and p->bus_clk before returning. These return lines are exactly 442,
> 451, 462, 478, 512, 517.
>
> Fix this warning by replacing devm_clk_get() with devm_clk_get_enabled(),
> which is equivalent to devm_clk_get() + clk_prepare_enable(). And with
> devm_clk_get_enabled(), the clock will automatically be disabled,
> unprepared and freed when the device is unbound from the bus.
>
> Fixes: b3c433efb8a3 ("PCI: faraday: Fix wrong pointer passed to PTR_ERR()")
> Fixes: 2eeb02b28579 ("PCI: faraday: Add clock handling")
> Fixes: 783a862563f7 ("PCI: faraday: Use pci_parse_request_of_pci_ranges()")
> Fixes: d3c68e0a7e34 ("PCI: faraday: Add Faraday Technology FTPCI100 PCI Host Bridge driver")
> Fixes: f1e8bd21e39e ("PCI: faraday: Convert IRQ masking to raw PCI config accessors")
> Reviewed-by: Dongliang Mu <dzm91@...t.edu.cn>
> Signed-off-by: Junyan Ye <yejunyan@...t.edu.cn>
> ---
> v2 -> v3: Rebase to v6.4-rc1 and modify commit message.
Reviewed-by: Linus Walleij <linus.walleij@...aro.org>
It's a fine fix since it saves lots of code.
I would merge it as a non-urgent fix.
Yours,
Linus Walleij
Powered by blists - more mailing lists