Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1245267
| From | Franklin S Cooper Jr <fcooper@ti.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 3/5] mtd: nand: omap2: Fix high memory dma prefetch transfer |
| Date | 2015-10-13 03:40 +0200 |
| Message-ID | <qiWJk-8ld-9@gated-at.bofh.it> (permalink) |
| References | <qiWJk-8ld-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Based on DMA documentation and testing using high memory buffer when
doing dma transfers can lead to various issues including kernel
panics.
To workaround this simply use cpu copy. The amount of high memory
buffers used are very uncommon so no noticeable performance hit should
be seen.
Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
---
drivers/mtd/nand/omap2.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
index 94d11de..537be2f 100644
--- a/drivers/mtd/nand/omap2.c
+++ b/drivers/mtd/nand/omap2.c
@@ -479,17 +479,8 @@ static inline int omap_nand_dma_transfer(struct mtd_info *mtd, void *addr,
int ret;
u32 val;
- if (addr >= high_memory) {
- struct page *p1;
-
- if (((size_t)addr & PAGE_MASK) !=
- ((size_t)(addr + len - 1) & PAGE_MASK))
- goto out_copy;
- p1 = vmalloc_to_page(addr);
- if (!p1)
- goto out_copy;
- addr = page_address(p1) + ((size_t)addr & ~PAGE_MASK);
- }
+ if (addr >= high_memory)
+ goto out_copy;
sg_init_one(&sg, addr, len);
n = dma_map_sg(info->dma->device->dev, &sg, 1, dir);
@@ -545,6 +536,7 @@ out_copy:
else
is_write == 0 ? omap_read_buf8(mtd, (u_char *) addr, len)
: omap_write_buf8(mtd, (u_char *) addr, len);
+
return 0;
}
--
2.6.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/5] mtd: nand: Fix support for NAND DMA Prefetch Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:40 +0200
[PATCH 3/5] mtd: nand: omap2: Fix high memory dma prefetch transfer Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:40 +0200
[PATCH 5/5] ARM: OMAP2+: Update gpmc and nand DT binding documentation Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:40 +0200
Re: [PATCH 5/5] ARM: OMAP2+: Update gpmc and nand DT binding documentation Roger Quadros <rogerq@ti.com> - 2015-10-14 14:00 +0200
Re: [PATCH 5/5] ARM: OMAP2+: Update gpmc and nand DT binding documentation "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-15 19:20 +0200
[PATCH 4/5] ARM: dts: am437x/am33xx/omap3/dm816x: Add gpmc dma channel Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:40 +0200
Re: [PATCH 4/5] ARM: dts: am437x/am33xx/omap3/dm816x: Add gpmc dma channel Roger Quadros <rogerq@ti.com> - 2015-10-14 13:50 +0200
Re: [PATCH 4/5] ARM: dts: am437x/am33xx/omap3/dm816x: Add gpmc dma channel "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 16:00 +0200
[PATCH 2/5] mtd: nand: omap2: Start dma request before enabling prefetch Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:50 +0200
Re: [PATCH 2/5] mtd: nand: omap2: Start dma request before enabling prefetch Roger Quadros <rogerq@ti.com> - 2015-10-14 13:50 +0200
Re: [PATCH 2/5] mtd: nand: omap2: Start dma request before enabling prefetch "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 15:50 +0200
[PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT Franklin S Cooper Jr <fcooper@ti.com> - 2015-10-13 03:50 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT Roger Quadros <rogerq@ti.com> - 2015-10-14 13:40 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT Roger Quadros <rogerq@ti.com> - 2015-10-14 14:00 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 15:30 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT Roger Quadros <rogerq@ti.com> - 2015-10-14 16:20 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 16:40 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT Tony Lindgren <tony@atomide.com> - 2015-10-14 18:20 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 18:30 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT Tony Lindgren <tony@atomide.com> - 2015-10-14 20:20 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-14 22:10 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT Roger Quadros <rogerq@ti.com> - 2015-10-15 09:40 +0200
Re: [PATCH 1/5] mtd: nand: omap2: Support parsing dma channel information from DT "Franklin S Cooper Jr." <fcooper@ti.com> - 2015-10-15 19:20 +0200
csiph-web