Skip to content

Commit

Permalink
spi: spi-imx: Add check for spi_imx_setupxfer()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Tamura Dai authored and Mark Brown committed Apr 17, 2025
1 parent 21f4314 commit 951a04a
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/spi/spi-imx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1695,9 +1695,12 @@ static int spi_imx_transfer_one(struct spi_controller *controller,
struct spi_device *spi,
struct spi_transfer *transfer)
{
int ret;
struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);

spi_imx_setupxfer(spi, transfer);
ret = spi_imx_setupxfer(spi, transfer);
if (ret < 0)
return ret;
transfer->effective_speed_hz = spi_imx->spi_bus_clk;

/* flush rxfifo before transfer */
Expand Down

0 comments on commit 951a04a

Please sign in to comment.