'master' is allocated with devm_spi_alloc_master(), there is no need to
put it explicitly in the remove function.
Fixes: 478cc2fc3dd7 ("spi: xtensa-xtfpga: Switch to use devm_spi_alloc_master()")
Signed-off-by: Christophe JAILLET <[email protected]>
---
drivers/spi/spi-xtensa-xtfpga.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/spi/spi-xtensa-xtfpga.c b/drivers/spi/spi-xtensa-xtfpga.c
index 2fa7608f94cd..271ae98f441c 100644
--- a/drivers/spi/spi-xtensa-xtfpga.c
+++ b/drivers/spi/spi-xtensa-xtfpga.c
@@ -123,7 +123,6 @@ static int xtfpga_spi_remove(struct platform_device *pdev)
struct xtfpga_spi *xspi = spi_master_get_devdata(master);
spi_bitbang_stop(&xspi->bitbang);
- spi_master_put(master);
return 0;
}
--
2.34.1
Hi Christophe,
On Sat, Dec 10, 2022 at 3:52 AM Christophe JAILLET
<[email protected]> wrote:
>
> 'master' is allocated with devm_spi_alloc_master(), there is no need to
> put it explicitly in the remove function.
>
> Fixes: 478cc2fc3dd7 ("spi: xtensa-xtfpga: Switch to use devm_spi_alloc_master()")
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> drivers/spi/spi-xtensa-xtfpga.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/spi/spi-xtensa-xtfpga.c b/drivers/spi/spi-xtensa-xtfpga.c
> index 2fa7608f94cd..271ae98f441c 100644
> --- a/drivers/spi/spi-xtensa-xtfpga.c
> +++ b/drivers/spi/spi-xtensa-xtfpga.c
> @@ -123,7 +123,6 @@ static int xtfpga_spi_remove(struct platform_device *pdev)
> struct xtfpga_spi *xspi = spi_master_get_devdata(master);
>
> spi_bitbang_stop(&xspi->bitbang);
> - spi_master_put(master);
This put is matching the get in the spi_bitbang_start.
It was discussed here:
https://lore.kernel.org/linux-spi/CAMo8BfJaD7pG_iutY8jordysjChyzhTpVSqpxXh3QoZsj2QmaQ@mail.gmail.com/
--
Thanks.
-- Max
On Sat, Dec 10, 2022 at 06:48:02AM -0800, Max Filippov wrote:
> Hi Christophe,
>
> On Sat, Dec 10, 2022 at 3:52 AM Christophe JAILLET
> <[email protected]> wrote:
> > 'master' is allocated with devm_spi_alloc_master(), there is no need to
> > put it explicitly in the remove function.
> > spi_bitbang_stop(&xspi->bitbang);
> > - spi_master_put(master);
> This put is matching the get in the spi_bitbang_start.
> It was discussed here:
> https://lore.kernel.org/linux-spi/CAMo8BfJaD7pG_iutY8jordysjChyzhTpVSqpxXh3QoZsj2QmaQ@mail.gmail.com/
Probably worth a comment though since it is a bit of a gotcha. Ideally
we'd improve this in the bitbang code but that's harder.
On Tue, Dec 13, 2022 at 09:30:32AM +0800, Yang Yingliang wrote:
> On 2022/12/12 23:36, Mark Brown wrote:
> > On Sat, Dec 10, 2022 at 06:48:02AM -0800, Max Filippov wrote:
> > Probably worth a comment though since it is a bit of a gotcha. Ideally
> > we'd improve this in the bitbang code but that's harder.
> Ideally, spi_bitbang_stop() should undo spi_bitbang_start(). shall we move
> spi_master_put() in spi_bitbang_stop() instead of
> calling it separately in drivers?
Ideally like I say, there's issues with devm IIRC which make it more
complicated than just adding a put() there.