mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
30 lines
1.1 KiB
Diff
30 lines
1.1 KiB
Diff
|
From f1b7824a42505669476f203e126fc26dd1006af2 Mon Sep 17 00:00:00 2001
|
||
|
From: Yutang Jiang <yutang.jiang@nxp.com>
|
||
|
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 <yunhui.cui@nxp.com>
|
||
|
Integrated-by: Yutang Jiang <yutang.jiang@nxp.com>
|
||
|
---
|
||
|
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;
|