summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi.c
diff options
context:
space:
mode:
authorMark Brown2013-01-27 07:35:04 +0100
committerGrant Likely2013-02-05 15:44:13 +0100
commit2cd94c8a1b4184b48ecbc16b353dcbb513053285 (patch)
treef93898fba0a5022602b8efec6a48619bfbda2fd6 /drivers/spi/spi.c
parentspi/spi-mpc512x-psc: init mode bits supported by the driver (diff)
downloadkernel-qcow2-linux-2cd94c8a1b4184b48ecbc16b353dcbb513053285.tar.gz
kernel-qcow2-linux-2cd94c8a1b4184b48ecbc16b353dcbb513053285.tar.xz
kernel-qcow2-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/spi.c')
-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 {