MTD: atmel_nand: Fall back to CPU I/O when buffer is in vmalloc(ed) region
PATCH 1/1 MTD: atmel_nand: Fall back to CPU I/O when buffer is in vmalloc(ed) region
The previous way of dealing with vmalloc(ed) region by walking though the pages can not work well actually. We just fall back to CPU I/O when the buffer address is higher than `high_memory'.
Signed-off-by Nicolas Ferre <[email protected]>
Signed-off-by Hong Xu <[email protected]>
--- drivers/mtd/nand/atmel_nand.c | 18 ++---------------- 1 files changed, 2 insertions(+), 16 deletions(-)
drivers/mtd/nand/atmel_nand.c +2 -16
@@ -209,22 +209,8 @@ static int atmel_nand_dma_op(struct mtd_info *mtd, void *buf, int len,int err = -EIO ;enum dma_data_direction dir = is_read ?DMA_FROM_DEVICE :DMA_TO_DEVICE ; -if (buf >= high_memory) { -struct page *pg; - -if (((size_t )buf &PAGE_MASK ) != - ((size_t )(buf + len -1 ) &PAGE_MASK )) { -dev_warn (host->dev,"Buffer not fit in one page\n" ); - goto err_buf; - } - - pg =vmalloc_to_page (buf); -if (pg ==0 ) { -dev_err (host->dev,"Failed to vmalloc_to_page\n" ); - goto err_buf; - } - p =page_address (pg) + ((size_t )buf & ~PAGE_MASK ); - } +if (buf >= high_memory) + goto err_buf; dma_dev = host->dma_chan->device;
Signature · 1 line
1.7.3.3
Artem Bityutskiy
AppliedPATCH 1/1 MTD: atmel_nand: Fall back to CPU I/O when buffer is in vmalloc(ed) region
Quoted 5 lines · Hong Xu
The previous way of dealing with vmalloc(ed) region by walking though the pages can not work well actually. We just fall back to CPU I/O when the buffer address is higher than `high_memory'.
Signed-off-by Nicolas Ferre <[email protected]>Signed-off-by Hong Xu <[email protected]>
Pushed to l2-mtd-2.6.git, thanks!
Signature · 2 lines
Best Regards, Artem Bityutskiy (????? ????????)