aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-4.4/1112-driver-spi-fsl-quad-Hang-memcpy-Unhandled-fault-alig.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-4.4/1112-driver-spi-fsl-quad-Hang-memcpy-Unhandled-fault-alig.patch')
-rw-r--r--target/linux/layerscape/patches-4.4/1112-driver-spi-fsl-quad-Hang-memcpy-Unhandled-fault-alig.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-4.4/1112-driver-spi-fsl-quad-Hang-memcpy-Unhandled-fault-alig.patch b/target/linux/layerscape/patches-4.4/1112-driver-spi-fsl-quad-Hang-memcpy-Unhandled-fault-alig.patch
new file mode 100644
index 0000000000..c6311fc4bb
--- /dev/null
+++ b/target/linux/layerscape/patches-4.4/1112-driver-spi-fsl-quad-Hang-memcpy-Unhandled-fault-alig.patch
@@ -0,0 +1,29 @@
+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;