Skip to content

Commit 951a04a

Browse files
TMR5454broonie
authored andcommitted
spi: spi-imx: Add check for spi_imx_setupxfer()
Add check for the return value of spi_imx_setupxfer(). spi_imx->rx and spi_imx->tx function pointer can be NULL when spi_imx_setupxfer() return error, and make NULL pointer dereference. Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 Call trace: 0x0 spi_imx_pio_transfer+0x50/0xd8 spi_imx_transfer_one+0x18c/0x858 spi_transfer_one_message+0x43c/0x790 __spi_pump_transfer_message+0x238/0x5d4 __spi_sync+0x2b0/0x454 spi_write_then_read+0x11c/0x200 Signed-off-by: Tamura Dai <kirinode0@gmail.com> Reviewed-by: Carlos Song <carlos.song@nxp.com> Link: https://patch.msgid.link/20250417011700.14436-1-kirinode0@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 21f4314 commit 951a04a

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/spi/spi-imx.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1695,9 +1695,12 @@ static int spi_imx_transfer_one(struct spi_controller *controller,
16951695
struct spi_device *spi,
16961696
struct spi_transfer *transfer)
16971697
{
1698+
int ret;
16981699
struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
16991700

1700-
spi_imx_setupxfer(spi, transfer);
1701+
ret = spi_imx_setupxfer(spi, transfer);
1702+
if (ret < 0)
1703+
return ret;
17011704
transfer->effective_speed_hz = spi_imx->spi_bus_clk;
17021705

17031706
/* flush rxfifo before transfer */

0 commit comments

Comments
 (0)