]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
spi: Revert "spi: Insert the missing pci_dev_put()before return"
authorNathan Chancellor <nathan@kernel.org>
Tue, 3 Sep 2024 00:43:06 +0000 (17:43 -0700)
committerMark Brown <broonie@kernel.org>
Tue, 3 Sep 2024 11:37:20 +0000 (12:37 +0100)
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>
Link: https://patch.msgid.link/20240902-spi-revert-8a0ec8c2d736-v1-1-928b829fed2b@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-pxa2xx-pci.c

index d49d8fef4088a019f642f5a8d5209e149d722c9b..616d032f1a89a2c361daa47532f43a0093c0920a 100644 (file)
@@ -145,10 +145,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);
@@ -223,10 +221,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);