diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-01-27 07:35:04 +0100 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2013-02-05 15:44:13 +0100 |
commit | 2cd94c8a1b4184b48ecbc16b353dcbb513053285 (patch) | |
tree | f93898fba0a5022602b8efec6a48619bfbda2fd6 /drivers/spi | |
parent | spi/spi-mpc512x-psc: init mode bits supported by the driver (diff) | |
download | linux-2cd94c8a1b4184b48ecbc16b353dcbb513053285.tar.xz linux-2cd94c8a1b4184b48ecbc16b353dcbb513053285.zip |
spi: Ensure memory used for spi_write_then_read() is DMA safe
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>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 2edbe1903804..d1e0a316826d 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -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 { |