linux_dsm_epyc7002/drivers/mtd/spi-nor
Thor Thayer a6a66f80c8 mtd: spi-nor: Fix Cadence QSPI page fault kernel panic
The current Cadence QSPI driver caused a kernel panic sporadically
when writing to QSPI. The problem was caused by writing more bytes
than needed because the QSPI operated on 4 bytes at a time.
<snip>
[   11.202044] Unable to handle kernel paging request at virtual address bffd3000
[   11.209254] pgd = e463054d
[   11.211948] [bffd3000] *pgd=2fffb811, *pte=00000000, *ppte=00000000
[   11.218202] Internal error: Oops: 7 [#1] SMP ARM
[   11.222797] Modules linked in:
[   11.225844] CPU: 1 PID: 1317 Comm: systemd-hwdb Not tainted 4.17.7-d0c45cd44a8f
[   11.235796] Hardware name: Altera SOCFPGA Arria10
[   11.240487] PC is at __raw_writesl+0x70/0xd4
[   11.244741] LR is at cqspi_write+0x1a0/0x2cc
</snip>
On a page boundary limit the number of bytes copied from the tx buffer
to remain within the page.

This patch uses a temporary buffer to hold the 4 bytes to write and then
copies only the bytes required from the tx buffer.

Reported-by: Adrian Amborzewicz <adrian.ambrozewicz@intel.com>
Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
2018-11-19 22:18:30 +01:00
..
aspeed-smc.c treewide: Use struct_size() for devm_kmalloc() and friends 2018-06-06 11:15:43 -07:00
atmel-quadspi.c mtd: spi-nor: atmel-quadspi: Include gpio/consumer.h instead of gpio.h 2018-08-01 09:27:23 +02:00
cadence-quadspi.c mtd: spi-nor: Fix Cadence QSPI page fault kernel panic 2018-11-19 22:18:30 +01:00
fsl-quadspi.c mtd: spi-nor: fsl-quadspi: fix read error for flash size larger than 16MB 2018-10-12 11:48:19 +02:00
hisi-sfc.c mtd: spi-nor: hisi: Avoid generic function names 2018-04-20 22:54:36 +02:00
intel-spi-pci.c mtd: spi-nor: intel-spi: Add support for Intel Ice Lake SPI serial flash 2018-10-12 11:47:07 +02:00
intel-spi-platform.c spi-nor: Add support for Intel SPI serial flash controller 2017-01-03 17:33:36 +00:00
intel-spi.c mtd: spi-nor: intel-spi: use mtd_device_register() 2018-08-01 09:18:55 +02:00
intel-spi.h spi-nor: Add support for Intel SPI serial flash controller 2017-01-03 17:33:36 +00:00
Kconfig Core changes: 2018-06-07 22:53:15 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mtk-quadspi.c mtd: mtk-nor: modify functions' name more generally 2018-01-14 16:14:06 +01:00
nxp-spifi.c mtd: spi-nor: nxp-spifi: release flash_np in nxp_spifi_probe() 2018-06-22 00:26:06 +02:00
spi-nor.c mtd: spi_nor: pass DMA-able buffer to spi_nor_read_raw() 2018-11-13 20:37:34 +01:00
stm32-quadspi.c mtd: spi-nor: stm32-quadspi: replace "%p" with "%pK" 2018-08-01 09:18:55 +02:00