spi: Ensure memory used for spi_write_then_read() is DMA safe
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 27 Jan 2013 06:35:04 +0000 (14:35 +0800)
committerGrant Likely <grant.likely@secretlab.ca>
Tue, 5 Feb 2013 14:44:13 +0000 (14:44 +0000)
Use GFP_DMA in order to ensure that the memory we allocate for transfers
in spi_write_then_read() can be DMAed. On most platforms this will have
no effect.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
drivers/spi/spi.c

index 2edbe1903804175511bea9ea73eff11844fd3a64..d1e0a316826d99ed2e69c89eac11de641c3f0685 100644 (file)
@@ -1661,7 +1661,8 @@ int spi_write_then_read(struct spi_device *spi,
         * using the pre-allocated buffer or the transfer is too large.
         */
        if ((n_tx + n_rx) > SPI_BUFSIZ || !mutex_trylock(&lock)) {
-               local_buf = kmalloc(max((unsigned)SPI_BUFSIZ, n_tx + n_rx), GFP_KERNEL);
+               local_buf = kmalloc(max((unsigned)SPI_BUFSIZ, n_tx + n_rx),
+                                   GFP_KERNEL | GFP_DMA);
                if (!local_buf)
                        return -ENOMEM;
        } else {