fpga: microchip-spi: move SPI I/O buffers out of stack
authorIvan Bornyakov <i.bornyakov@metrotek.ru>
Fri, 30 Dec 2022 09:29:20 +0000 (12:29 +0300)
committerXu Yilun <yilun.xu@intel.com>
Sat, 28 Jan 2023 15:20:24 +0000 (23:20 +0800)
commit1da53d23a41c5f77963984d8da5623ed56918ada
tree7e14e7ea8034e90a41097ca0ebd474d4cf1479e1
parent1b929c02afd37871d5afb9d498426f83432e71c2
fpga: microchip-spi: move SPI I/O buffers out of stack

As spi-summary doc says:
 > I/O buffers use the usual Linux rules, and must be DMA-safe.
 > You'd normally allocate them from the heap or free page pool.
 > Don't use the stack, or anything that's declared "static".

Replace spi_write() with spi_write_then_read(), which is dma-safe for
on-stack buffers. Use cacheline aligned buffers for transfers used in
spi_sync_transfer().

Although everything works OK with stack-located I/O buffers, better
follow the doc to be safe.

Fixes: 5f8d4a900830 ("fpga: microchip-spi: add Microchip MPF FPGA manager")
Signed-off-by: Ivan Bornyakov <i.bornyakov@metrotek.ru>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Acked-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20221230092922.18822-2-i.bornyakov@metrotek.ru
Signed-off-by: Xu Yilun <yilun.xu@intel.com>
drivers/fpga/microchip-spi.c