From f1b7824a42505669476f203e126fc26dd1006af2 Mon Sep 17 00:00:00 2001 From: Yutang Jiang Date: Fri, 9 Sep 2016 22:57:55 +0800 Subject: [PATCH 112/113] driver: spi: fsl-quad: Hang memcpy: Unhandled fault: alignment fault vmap/iomap based on whether the buffer is in memory region or reserved region. However, both map it as non-cacheable memory. For armv8 specifically, non-cacheable mapping requests use a memory type that has to be accessed aligned to the request size. memcpy() doesn't guarantee that. memcpy_toio() can guarantee 4-bytes alignment. Signed-off-by: Yunhui Cui Integrated-by: Yutang Jiang --- drivers/mtd/spi-nor/fsl-quadspi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/mtd/spi-nor/fsl-quadspi.c +++ b/drivers/mtd/spi-nor/fsl-quadspi.c @@ -1103,7 +1103,7 @@ static ssize_t fsl_qspi_read(struct spi_ len); /* Read out the data directly from the AHB buffer.*/ - memcpy(buf, q->ahb_addr + q->chip_base_addr + from - q->memmap_offs, + memcpy_toio(buf, q->ahb_addr + q->chip_base_addr + from - q->memmap_offs, len); return len;