diff mbox series

spi: Revert "spi: Insert the missing pci_dev_put()before return"

Message ID 20240902-spi-revert-8a0ec8c2d736-v1-1-928b829fed2b@kernel.org (mailing list archive)
State Accepted
Commit bf62a8c7908ee8e0ef61d27d9ff65bf12f41fb0a
Headers show
Series spi: Revert "spi: Insert the missing pci_dev_put()before return" | expand

Commit Message

Nathan Chancellor Sept. 3, 2024, 12:43 a.m. UTC
Commit 8a0ec8c2d736 ("spi: Insert the missing pci_dev_put()before
return") added two uses of pci_dev_put() with an uninitialized dma_dev,
resulting in the following compiler warnings (or errors with
CONFIG_WERROR) when building with clang:

  drivers/spi/spi-pxa2xx-pci.c:150:15: error: variable 'dma_dev' is uninitialized when used here [-Werror,-Wuninitialized]
    150 |                 pci_dev_put(dma_dev);
        |                             ^~~~~~~
  drivers/spi/spi-pxa2xx-pci.c:228:15: error: variable 'dma_dev' is uninitialized when used here [-Werror,-Wuninitialized]
    228 |                 pci_dev_put(dma_dev);
        |                             ^~~~~~~

Commit 609d7ffdc421 ("spi: pxa2xx-pci: Balance reference count for PCI
DMA device") added a call to pci_dev_put() via
devm_add_action_or_reset() in case of failures, so the recent change was
incorrect for multiple reasons. Revert it altogether.

Fixes: 8a0ec8c2d736 ("spi: Insert the missing pci_dev_put()before return")
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/CAMuHMdWNjo69_W6f+R9QJJOf8uF0htg2XazeS-yjugJv3UM+kg@mail.gmail.com/
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
---
 drivers/spi/spi-pxa2xx-pci.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)


---
base-commit: 42afa0cec405abcaf9263378496a51ba16895252
change-id: 20240902-spi-revert-8a0ec8c2d736-895aa00bdfcf

Best regards,

Comments

Mark Brown Sept. 3, 2024, 9:07 p.m. UTC | #1
On Mon, 02 Sep 2024 17:43:06 -0700, Nathan Chancellor wrote:
> Commit 8a0ec8c2d736 ("spi: Insert the missing pci_dev_put()before
> return") added two uses of pci_dev_put() with an uninitialized dma_dev,
> resulting in the following compiler warnings (or errors with
> CONFIG_WERROR) when building with clang:
> 
>   drivers/spi/spi-pxa2xx-pci.c:150:15: error: variable 'dma_dev' is uninitialized when used here [-Werror,-Wuninitialized]
>     150 |                 pci_dev_put(dma_dev);
>         |                             ^~~~~~~
>   drivers/spi/spi-pxa2xx-pci.c:228:15: error: variable 'dma_dev' is uninitialized when used here [-Werror,-Wuninitialized]
>     228 |                 pci_dev_put(dma_dev);
>         |                             ^~~~~~~
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/1] spi: Revert "spi: Insert the missing pci_dev_put()before return"
      commit: bf62a8c7908ee8e0ef61d27d9ff65bf12f41fb0a

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
diff mbox series

Patch

diff --git a/drivers/spi/spi-pxa2xx-pci.c b/drivers/spi/spi-pxa2xx-pci.c
index a7bf4568f9ec..cc8dcf782399 100644
--- a/drivers/spi/spi-pxa2xx-pci.c
+++ b/drivers/spi/spi-pxa2xx-pci.c
@@ -146,10 +146,8 @@  static int lpss_spi_setup(struct pci_dev *dev, struct pxa2xx_spi_controller *c)
 	c->num_chipselect = 1;
 
 	ret = pxa2xx_spi_pci_clk_register(dev, ssp, 50000000);
-	if (ret) {
-		pci_dev_put(dma_dev);
+	if (ret)
 		return ret;
-	}
 
 	dma_dev = pci_get_slot(dev->bus, PCI_DEVFN(PCI_SLOT(dev->devfn), 0));
 	ret = devm_add_action_or_reset(&dev->dev, lpss_dma_put_device, dma_dev);
@@ -224,10 +222,8 @@  static int mrfld_spi_setup(struct pci_dev *dev, struct pxa2xx_spi_controller *c)
 	}
 
 	ret = pxa2xx_spi_pci_clk_register(dev, ssp, 25000000);
-	if (ret) {
-		pci_dev_put(dma_dev);
+	if (ret)
 		return ret;
-	}
 
 	dma_dev = pci_get_slot(dev->bus, PCI_DEVFN(21, 0));
 	ret = devm_add_action_or_reset(&dev->dev, lpss_dma_put_device, dma_dev);