Merge remote-tracking branch 'spi/fix/core' into spi-linus
authorMark Brown <broonie@linaro.org>
Mon, 4 Aug 2014 16:20:53 +0000 (17:20 +0100)
committerMark Brown <broonie@linaro.org>
Mon, 4 Aug 2014 16:20:53 +0000 (17:20 +0100)
drivers/spi/spi.c

index d4f9670..e691e28 100644 (file)
@@ -619,6 +619,8 @@ static int spi_map_buf(struct spi_master *master, struct device *dev,
        }
 
        ret = dma_map_sg(dev, sgt->sgl, sgt->nents, dir);
+       if (!ret)
+               ret = -ENOMEM;
        if (ret < 0) {
                sg_free_table(sgt);
                return ret;
@@ -647,8 +649,8 @@ static int __spi_map_msg(struct spi_master *master, struct spi_message *msg)
        if (!master->can_dma)
                return 0;
 
-       tx_dev = &master->dma_tx->dev->device;
-       rx_dev = &master->dma_rx->dev->device;
+       tx_dev = master->dma_tx->device->dev;
+       rx_dev = master->dma_rx->device->dev;
 
        list_for_each_entry(xfer, &msg->transfers, transfer_list) {
                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)
        if (!master->cur_msg_mapped || !master->can_dma)
                return 0;
 
-       tx_dev = &master->dma_tx->dev->device;
-       rx_dev = &master->dma_rx->dev->device;
+       tx_dev = master->dma_tx->device->dev;
+       rx_dev = master->dma_rx->device->dev;
 
        list_for_each_entry(xfer, &msg->transfers, transfer_list) {
                if (!master->can_dma(master, msg->spi, xfer))