aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spi.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index d4f9670b51bc..e691e281e3a2 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -619,6 +619,8 @@ static int spi_map_buf(struct spi_master *master, struct device *dev,
619 } 619 }
620 620
621 ret = dma_map_sg(dev, sgt->sgl, sgt->nents, dir); 621 ret = dma_map_sg(dev, sgt->sgl, sgt->nents, dir);
622 if (!ret)
623 ret = -ENOMEM;
622 if (ret < 0) { 624 if (ret < 0) {
623 sg_free_table(sgt); 625 sg_free_table(sgt);
624 return ret; 626 return ret;
@@ -647,8 +649,8 @@ static int __spi_map_msg(struct spi_master *master, struct spi_message *msg)
647 if (!master->can_dma) 649 if (!master->can_dma)
648 return 0; 650 return 0;
649 651
650 tx_dev = &master->dma_tx->dev->device; 652 tx_dev = master->dma_tx->device->dev;
651 rx_dev = &master->dma_rx->dev->device; 653 rx_dev = master->dma_rx->device->dev;
652 654
653 list_for_each_entry(xfer, &msg->transfers, transfer_list) { 655 list_for_each_entry(xfer, &msg->transfers, transfer_list) {
654 if (!master->can_dma(master, msg->spi, xfer)) 656 if (!master->can_dma(master, msg->spi, xfer))
@@ -687,8 +689,8 @@ static int spi_unmap_msg(struct spi_master *master, struct spi_message *msg)
687 if (!master->cur_msg_mapped || !master->can_dma) 689 if (!master->cur_msg_mapped || !master->can_dma)
688 return 0; 690 return 0;
689 691
690 tx_dev = &master->dma_tx->dev->device; 692 tx_dev = master->dma_tx->device->dev;
691 rx_dev = &master->dma_rx->dev->device; 693 rx_dev = master->dma_rx->device->dev;
692 694
693 list_for_each_entry(xfer, &msg->transfers, transfer_list) { 695 list_for_each_entry(xfer, &msg->transfers, transfer_list) {
694 if (!master->can_dma(master, msg->spi, xfer)) 696 if (!master->can_dma(master, msg->spi, xfer))