The dma_map and dma_unmap should have same parameter
passed otherwise we get the below warn.
ks8851 spi1.0: DMA-API: device driver tries to free DMA memory it has not
allocated [device address=0x9f22]
[2.066925] Modules linked in:
[2.070312]
[2.071929] [] (unwind_backtrace+0x0/0x130) from []
(warn_slowpath_common+0x4c/0x64)
[2.081909] [] (warn_slowpath_common+0x4c/0x64) from []
(warn_slowpath_fmt+0x30/0x40)
[2.091949] [] (warn_slowpath_fmt+0x30/0x40) from []
(check_unmap+0x6d0/0x7b0)
[2.101348] [] (check_unmap+0x6d0/0x7b0) from []
(debug_dma_unmap_page+0x64/0x70)
[2.111053] [] (debug_dma_unmap_page+0x64/0x70) from []
(omap2_mcspi_txrx_dma+0x2d8/0x4fc)
[2.121582] [] (omap2_mcspi_txrx_dma+0x2d8/0x4fc) from
[] (omap2_mcspi_work.clone.4+0xf0/0x290)
[2.132537] [] (omap2_mcspi_work.clone.4+0xf0/0x290) from
[] (omap2_mcspi_transfer_one_message+0x288/0x438)
[2.144592] [] (omap2_mcspi_transfer_one_message+0x288/0x438) from
[] (spi_pump_messages+0x100/0x160)
[2.156127] [] (spi_pump_messages+0x100/0x160) from []
(kthread_worker_fn+0xac/0x180)
[2.166168] [] (kthread_worker_fn+0xac/0x180) from []
(kthread+0x90/0x9c)
[2.175140] [] (kthread+0x90/0x9c) from []
(kernel_thread_exit+0x0/0x8)
[2.183898] ---[ end trace d1830ce6e44292f2 ]---
Fix the warn by changing the unmap parameter.
Reported-by: Russell King - ARM Linux
Signed-off-by: Shubhrajyoti D
---
drivers/spi/spi-omap2-mcspi.c |6 --
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 0c73dd4..37ccdb7 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -388,7 +388,8 @@ omap2_mcspi_txrx_dma(struct spi_device *spi, struct
spi_transfer *xfer)
if (tx != NULL) {
wait_for_completion(&mcspi_dma->dma_tx_completion);
- dma_unmap_single(&spi->dev, xfer->tx_dma, count, DMA_TO_DEVICE);
+ dma_unmap_single(mcspi->dev, xfer->tx_dma, count,
+DMA_TO_DEVICE);
/* for TX_ONLY mode, be sure all words have shifted out */
if (rx == NULL) {
@@ -403,7 +404,8 @@ omap2_mcspi_txrx_dma(struct spi_device *spi, struct
spi_transfer *xfer)
if (rx != NULL) {
wait_for_completion(&mcspi_dma->dma_rx_completion);
- dma_unmap_single(&spi->dev, xfer->rx_dma, count,
DMA_FROM_DEVICE);
+ dma_unmap_single(mcspi->dev, xfer->rx_dma, count,
+DMA_FROM_DEVICE);
omap2_mcspi_set_enable(spi, 0);
if (l & OMAP2_MCSPI_CHCONF_TURBO) {
--
1.7.5.4
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general