]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
spi: bcm2835: Fix error return code in bcm2835_dma_init()
authorWei Yongjun <weiyongjun1@huawei.com>
Wed, 6 May 2020 12:56:07 +0000 (12:56 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 6 May 2020 14:55:14 +0000 (15:55 +0100)
Fix to return negative error code -ENOMEM from the dma mapping error
handling case instead of 0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Link: https://lore.kernel.org/r/20200506125607.90952-1-weiyongjun1@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-bcm2835.c

index e10b8f3b4bab45a804da9bd2ff0d0148bf529a10..cad3458e23ed28ab11e0934571798eb92f0a8449 100644 (file)
@@ -940,6 +940,7 @@ static int bcm2835_dma_init(struct spi_controller *ctlr, struct device *dev,
        if (dma_mapping_error(ctlr->dma_tx->device->dev, bs->fill_tx_addr)) {
                dev_err(dev, "cannot map zero page - not using DMA mode\n");
                bs->fill_tx_addr = 0;
+               ret = -ENOMEM;
                goto err_release;
        }
 
@@ -949,6 +950,7 @@ static int bcm2835_dma_init(struct spi_controller *ctlr, struct device *dev,
                                                     DMA_MEM_TO_DEV, 0);
        if (!bs->fill_tx_desc) {
                dev_err(dev, "cannot prepare fill_tx_desc - not using DMA mode\n");
+               ret = -ENOMEM;
                goto err_release;
        }
 
@@ -979,6 +981,7 @@ static int bcm2835_dma_init(struct spi_controller *ctlr, struct device *dev,
        if (dma_mapping_error(ctlr->dma_rx->device->dev, bs->clear_rx_addr)) {
                dev_err(dev, "cannot map clear_rx_cs - not using DMA mode\n");
                bs->clear_rx_addr = 0;
+               ret = -ENOMEM;
                goto err_release;
        }
 
@@ -989,6 +992,7 @@ static int bcm2835_dma_init(struct spi_controller *ctlr, struct device *dev,
                                           DMA_MEM_TO_DEV, 0);
                if (!bs->clear_rx_desc[i]) {
                        dev_err(dev, "cannot prepare clear_rx_desc - not using DMA mode\n");
+                       ret = -ENOMEM;
                        goto err_release;
                }