summaryrefslogtreecommitdiffstats
path: root/drivers/spi
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2013-01-27 14:35:04 +0800
committerGrant Likely <grant.likely@secretlab.ca>2013-02-05 14:44:13 +0000
commit2cd94c8a1b4184b48ecbc16b353dcbb513053285 (patch)
treef93898fba0a5022602b8efec6a48619bfbda2fd6 /drivers/spi
parentc88dd349b5a83c9efa4030176a5184a9a1440475 (diff)
downloadlinux-2cd94c8a1b4184b48ecbc16b353dcbb513053285.tar.gz
linux-2cd94c8a1b4184b48ecbc16b353dcbb513053285.tar.bz2
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.c3
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 {