All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Lukas Wunner <lukas@wunner.de>
Cc: Mark Brown <broonie@kernel.org>,
	linux-spi@vger.kernel.org, Kozlov Sergey <serjk@netup.ru>,
	Abylay Ospan <aospan@netup.ru>,
	linux-media@vger.kernel.org
Subject: Re: [PATCH for-5.10] media: netup_unidvb: Don't leak SPI master in probe error path
Date: Mon, 23 Nov 2020 15:06:34 +0100	[thread overview]
Message-ID: <20201123150634.2bd62db7@coco.lan> (raw)
In-Reply-To: <48e6a396526bcd0a26e970036dbe3207cce57ea6.1605512876.git.lukas@wunner.de>

Em Mon, 16 Nov 2020 09:23:13 +0100
Lukas Wunner <lukas@wunner.de> escreveu:

> If the call to spi_register_master() fails on probe of the NetUP
> Universal DVB driver, the spi_master struct is erroneously not freed.
> 
> Likewise, if spi_new_device() fails, the spi_controller struct is
> not unregistered.  Plug the leaks.
> 
> While at it, fix an ordering issue in netup_spi_release() wherein
> spi_unregister_master() is called after fiddling with the IRQ control
> register.  The correct order is to call spi_unregister_master() *before*
> this teardown step because bus accesses may still be ongoing until that
> function returns.
> 
> Fixes: 52b1eaf4c59a ("[media] netup_unidvb: NetUP Universal DVB-S/S2/T/T2/C PCI-E card driver")
> Signed-off-by: Lukas Wunner <lukas@wunner.de>
> Cc: <stable@vger.kernel.org> # v4.3+: 5e844cc37a5c: spi: Introduce device-managed SPI controller allocation
> Cc: <stable@vger.kernel.org> # v4.3+
> Cc: Kozlov Sergey <serjk@netup.ru>
> ---
> @Mauro Carvalho Chehab:
> This patch needs to go in through the spi tree because it depends on
> commit 5e844cc37a5c, which is on the spi/for-5.10 branch.
> Please ack (barring any objections).  Thanks!

Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

I'm OK on having this merged via SPI mailing list.

> 
>  drivers/media/pci/netup_unidvb/netup_unidvb_spi.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c b/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c
> index d4f12c250f91..526042d8afae 100644
> --- a/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c
> +++ b/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c
> @@ -175,7 +175,7 @@ int netup_spi_init(struct netup_unidvb_dev *ndev)
>  	struct spi_master *master;
>  	struct netup_spi *nspi;
>  
> -	master = spi_alloc_master(&ndev->pci_dev->dev,
> +	master = devm_spi_alloc_master(&ndev->pci_dev->dev,
>  		sizeof(struct netup_spi));
>  	if (!master) {
>  		dev_err(&ndev->pci_dev->dev,
> @@ -208,6 +208,7 @@ int netup_spi_init(struct netup_unidvb_dev *ndev)
>  		ndev->pci_slot,
>  		ndev->pci_func);
>  	if (!spi_new_device(master, &netup_spi_board)) {
> +		spi_unregister_master(master);
>  		ndev->spi = NULL;
>  		dev_err(&ndev->pci_dev->dev,
>  			"%s(): unable to create SPI device\n", __func__);
> @@ -226,13 +227,13 @@ void netup_spi_release(struct netup_unidvb_dev *ndev)
>  	if (!spi)
>  		return;
>  
> +	spi_unregister_master(spi->master);
>  	spin_lock_irqsave(&spi->lock, flags);
>  	reg = readw(&spi->regs->control_stat);
>  	writew(reg | NETUP_SPI_CTRL_IRQ, &spi->regs->control_stat);
>  	reg = readw(&spi->regs->control_stat);
>  	writew(reg & ~NETUP_SPI_CTRL_IMASK, &spi->regs->control_stat);
>  	spin_unlock_irqrestore(&spi->lock, flags);
> -	spi_unregister_master(spi->master);
>  	ndev->spi = NULL;
>  }
>  



Thanks,
Mauro

  reply	other threads:[~2020-11-23 14:07 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-16  8:23 [PATCH for-5.10] spi: spi-geni-qcom: Fix use-after-free on unbind Lukas Wunner
2020-11-16  8:23 ` [PATCH for-5.10] spi: spi-qcom-qspi: " Lukas Wunner
2020-11-16  8:23 ` [PATCH for-5.10] spi: spi-sh: " Lukas Wunner
2020-11-16  8:23 ` [PATCH for-5.10] spi: pxa2xx: " Lukas Wunner
2020-11-16  8:23 ` [PATCH for-5.10] spi: rpc-if: " Lukas Wunner
2020-11-28 20:20   ` Sergey Shtylyov
2020-11-29 11:35     ` Lukas Wunner
2020-11-30 19:18       ` Sergey Shtylyov
2020-12-02 11:43         ` Lukas Wunner
2020-11-16  8:23 ` [PATCH for-5.10] spi: mxic: Don't leak SPI master in probe error path Lukas Wunner
2020-11-16  8:23 ` [PATCH for-5.10] spi: mt7621: " Lukas Wunner
2020-11-16 11:05   ` Stefan Roese
2020-11-16  8:23 ` [PATCH for-5.10] spi: spi-mtk-nor: " Lukas Wunner
2020-11-17  4:02   ` Ikjoon Jang
2020-11-17 12:32   ` Mark Brown
2020-11-16  8:23 ` [PATCH for-5.10] spi: gpio: " Lukas Wunner
2020-11-16 19:23   ` Andrey Smirnov
2020-11-16 23:03     ` Lukas Wunner
2020-11-16 23:59       ` Andrey Smirnov
2020-11-18  1:08   ` Linus Walleij
2020-11-16  8:23 ` [PATCH for-5.10] spi: npcm-fiu: " Lukas Wunner
2020-11-17 22:38   ` Mark Brown
2020-12-01 13:57   ` Mark Brown
2020-12-01 14:30     ` Lukas Wunner
2020-12-01 17:17       ` Mark Brown
2020-12-01 17:49         ` Lukas Wunner
2020-12-02 15:17           ` Mark Brown
2020-11-16  8:23 ` [PATCH for-5.10] spi: rb4xx: " Lukas Wunner
2020-11-16  8:23 ` [PATCH for-5.10] spi: sc18is602: " Lukas Wunner
2020-11-16  8:23 ` [PATCH for-5.10] media: netup_unidvb: " Lukas Wunner
2020-11-23 14:06   ` Mauro Carvalho Chehab [this message]
2020-12-01 13:57   ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201123150634.2bd62db7@coco.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=aospan@netup.ru \
    --cc=broonie@kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=serjk@netup.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.