Frank Li
25f00a13dc
spi: spi-fsl-dspi: Fix crash when not using GPIO chip select
Add check for the return value of spi_get_csgpiod() to avoid passing a NULL
pointer to gpiod_direction_output(), preventing a crash when GPIO chip
select is not used.
Fix below crash:
[ 4.251960] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
[ 4.260762] Mem abort info:
[ 4.263556] ESR = 0x0000000096000004
[ 4.267308] EC = 0x25: DABT (current EL), IL = 32 bits
[ 4.272624] SET = 0, FnV = 0
[ 4.275681] EA = 0, S1PTW = 0
[ 4.278822] FSC = 0x04: level 0 translation fault
[ 4.283704] Data abort info:
[ 4.286583] ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
[ 4.292074] CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[ 4.297130] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[ 4.302445] [0000000000000000] user address but active_mm is swapper
[ 4.308805] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
[ 4.315072] Modules linked in:
[ 4.318124] CPU: 2 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.0-rc4-next-20241023-00008-ga20ec42c5fc1 #359
[ 4.328130] Hardware name: LS1046A QDS Board (DT)
[ 4.332832] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 4.339794] pc : gpiod_direction_output+0x34/0x5c
[ 4.344505] lr : gpiod_direction_output+0x18/0x5c
[ 4.349208] sp : ffff80008003b8f0
[ 4.352517] x29: ffff80008003b8f0 x28: 0000000000000000 x27: ffffc96bcc7e9068
[ 4.359659] x26: ffffc96bcc6e00b0 x25: ffffc96bcc598398 x24: ffff447400132810
[ 4.366800] x23: 0000000000000000 x22: 0000000011e1a300 x21: 0000000000020002
[ 4.373940] x20: 0000000000000000 x19: 0000000000000000 x18: ffffffffffffffff
[ 4.381081] x17: ffff44740016e600 x16: 0000000500000003 x15: 0000000000000007
[ 4.388221] x14: 0000000000989680 x13: 0000000000020000 x12: 000000000000001e
[ 4.395362] x11: 0044b82fa09b5a53 x10: 0000000000000019 x9 : 0000000000000008
[ 4.402502] x8 : 0000000000000002 x7 : 0000000000000007 x6 : 0000000000000000
[ 4.409641] x5 : 0000000000000200 x4 : 0000000002000000 x3 : 0000000000000000
[ 4.416781] x2 : 0000000000022202 x1 : 0000000000000000 x0 : 0000000000000000
[ 4.423921] Call trace:
[ 4.426362] gpiod_direction_output+0x34/0x5c (P)
[ 4.431067] gpiod_direction_output+0x18/0x5c (L)
[ 4.435771] dspi_setup+0x220/0x334
Fixes: 9e264f3f85 ("spi: Replace all spi->chip_select and spi->cs_gpiod references with function call")
Cc: stable@vger.kernel.org
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20241023203032.1388491-1-Frank.Li@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-10-23 22:37:54 +01:00
..
2024-10-01 12:07:53 +01:00
2024-06-10 12:49:03 +01:00
2024-07-30 14:23:14 +01:00
2024-07-08 17:01:10 +01:00
2024-10-02 17:23:23 -04:00
2024-06-10 12:49:05 +01:00
2022-12-29 13:22:04 +00:00
2024-04-15 10:17:25 +09:00
2024-03-25 20:30:06 +00:00
2023-08-14 13:10:48 +01:00
2023-09-11 01:31:52 +01:00
2024-04-30 23:57:26 +09:00
2023-09-11 01:31:54 +01:00
2023-09-25 16:27:48 +02:00
2024-02-08 11:54:48 +00:00
2024-03-25 20:30:07 +00:00
2024-03-28 21:09:45 +00:00
2024-07-29 16:48:44 +01:00
2023-08-07 14:38:23 +01:00
2024-09-12 12:38:44 +01:00
2024-02-05 14:35:44 +00:00
2023-09-11 01:31:57 +01:00
2024-01-23 13:28:03 +00:00
2022-10-18 19:16:53 +01:00
2024-08-28 20:39:08 +01:00
2023-07-11 13:41:20 +01:00
2024-07-29 01:19:52 +01:00
2023-03-06 12:31:15 +00:00
2024-07-03 16:44:22 +02:00
2024-09-12 12:38:44 +01:00
2024-08-19 13:11:18 +01:00
2024-09-30 21:55:00 +01:00
2023-08-07 14:38:29 +01:00
2023-09-11 01:31:59 +01:00
2024-02-08 11:54:50 +00:00
2024-02-08 11:54:50 +00:00
2024-07-08 17:01:10 +01:00
2023-08-07 14:38:28 +01:00
2024-03-28 13:58:41 +00:00
2024-06-20 21:10:15 +01:00
2024-08-28 13:38:02 +01:00
2024-10-02 17:23:23 -04:00
2024-05-27 01:33:04 +01:00
2024-06-10 12:48:58 +01:00
2024-02-15 14:17:19 +00:00
2024-05-09 17:48:06 +02:00
2021-11-16 14:30:05 +00:00
2024-05-03 11:09:24 +09:00
2024-09-12 14:33:12 +00:00
2023-08-14 13:10:51 +01:00
2023-08-14 13:10:52 +01:00
2024-06-10 12:49:05 +01:00
2024-03-28 21:09:46 +00:00
2024-10-23 22:37:54 +01:00
2023-08-14 13:10:54 +01:00
2024-06-10 12:49:05 +01:00
2023-07-25 17:40:28 +01:00
2024-09-19 12:51:20 +02:00
2023-08-14 13:10:55 +01:00
2024-03-28 21:09:46 +00:00
2024-10-22 20:49:02 +01:00
2024-07-29 01:19:53 +01:00
2023-09-27 17:06:36 +02:00
2024-07-30 13:27:38 +01:00
2024-01-23 15:05:18 +00:00
2023-08-14 13:11:01 +01:00
2024-09-30 21:54:59 +01:00
2024-06-10 12:48:59 +01:00
2024-02-12 13:41:35 +00:00
2022-02-14 12:53:09 +00:00
2024-08-30 12:28:17 +01:00
2022-02-14 12:53:09 +00:00
2023-08-21 13:10:56 +01:00
2023-08-14 13:11:05 +01:00
2023-09-11 01:32:03 +01:00
2023-12-11 12:55:16 +00:00
2024-07-03 16:44:22 +02:00
2023-07-31 15:57:09 +01:00
2023-07-31 15:57:09 +01:00
2023-07-31 15:57:09 +01:00
2023-07-31 15:57:09 +01:00
2024-03-28 13:58:40 +00:00
2023-09-11 01:31:31 +01:00
2024-03-14 14:14:20 +00:00
2024-07-29 01:23:24 +01:00
2023-09-11 22:43:17 +01:00
2024-05-09 06:59:19 +02:00
2024-07-15 19:08:20 +01:00
2023-10-06 12:34:31 +01:00
2023-12-08 20:13:24 +00:00
2023-09-11 01:31:35 +01:00
2024-07-29 01:23:25 +01:00
2024-03-25 15:03:02 +00:00
2023-09-11 01:31:39 +01:00
2024-10-21 15:33:19 +01:00
2024-07-09 17:42:33 +01:00
2024-05-27 01:33:05 +01:00
2024-09-03 22:07:58 +01:00
2023-11-30 12:12:39 +00:00
2024-10-02 17:23:23 -04:00
2024-09-17 10:31:31 +02:00
2024-04-17 23:01:11 +09:00
2024-07-15 18:03:43 -07:00
2024-06-10 12:49:05 +01:00
2024-10-02 17:23:23 -04:00
2024-06-10 12:49:01 +01:00
2024-04-30 23:57:29 +09:00
2024-04-30 23:57:30 +09:00
2023-12-15 12:58:18 +00:00
2024-09-02 12:56:31 +01:00
2024-05-03 11:11:36 +09:00
2024-09-03 12:37:20 +01:00
2024-08-22 13:34:06 +01:00
2024-08-22 13:34:06 +01:00
2024-08-22 13:34:05 +01:00
2023-08-21 14:29:25 +01:00
2024-06-11 11:38:25 +01:00
2023-08-21 14:29:27 +01:00
2023-08-21 14:29:28 +01:00
2023-08-21 14:29:29 +01:00
2024-08-28 20:39:00 +01:00
2024-10-02 17:23:23 -04:00
2024-03-25 17:18:22 +00:00
2023-10-09 13:14:28 +01:00
2024-10-01 19:02:01 +01:00
2023-08-21 14:29:33 +01:00
2023-08-21 14:29:34 +01:00
2024-10-02 17:23:23 -04:00
2024-02-08 11:54:48 +00:00
2023-08-21 14:29:37 +01:00
2023-08-21 14:29:38 +01:00
2024-09-10 12:41:40 +01:00
2024-09-10 12:41:38 +01:00
2024-09-10 12:41:37 +01:00
2023-08-21 14:29:39 +01:00
2023-12-11 12:54:53 +00:00
2023-12-11 12:54:53 +00:00
2023-12-11 12:54:54 +00:00
2024-06-18 14:48:26 +01:00
2024-10-10 12:15:18 +01:00
2024-04-30 23:57:30 +09:00
2024-04-30 23:57:31 +09:00
2023-12-11 12:54:59 +00:00
2023-12-11 12:55:00 +00:00
2023-12-11 12:55:03 +00:00
2023-12-11 12:55:04 +00:00
2023-12-11 12:55:02 +00:00
2023-12-11 12:55:05 +00:00
2023-12-11 12:55:06 +00:00
2022-02-09 13:00:45 +00:00
2023-12-11 12:55:07 +00:00
2024-10-02 17:23:23 -04:00
2024-08-28 22:22:24 +01:00
2024-10-02 17:23:23 -04:00
2024-02-08 11:54:48 +00:00
2024-04-30 23:57:32 +09:00
2024-02-08 11:54:48 +00:00
2024-09-02 19:17:44 +01:00
2024-09-12 12:38:44 +01:00
2024-09-10 12:41:42 +01:00
2024-09-27 08:18:43 -07:00