diff options
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.patch | 29 |
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; |