soc: fsl: qbman: fix null pointer dereference

Message ID 20231022111537.878237-1-hi@alyssa.is
State New
Headers
Series soc: fsl: qbman: fix null pointer dereference |

Commit Message

Alyssa Ross Oct. 22, 2023, 11:15 a.m. UTC
  When called from bman_test_api(), bm_bpalloc may not have been
initialized by fsl_bman_probe(), in which case gen_pool_alloc() would
attempt to dereference a NULL pointer.

Checking that bm_bpalloc is non-NULL allows boot to continue is this
case.

Fixes: 97e0d385b139 ("soc/bman: Add self-test for BMan driver")
Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
 drivers/soc/fsl/qbman/bman.c | 3 +++
 1 file changed, 3 insertions(+)


base-commit: 58720809f52779dc0f08e53e54b014209d13eebb
  

Patch

diff --git a/drivers/soc/fsl/qbman/bman.c b/drivers/soc/fsl/qbman/bman.c
index 6cc1847e534a..713a0508678e 100644
--- a/drivers/soc/fsl/qbman/bman.c
+++ b/drivers/soc/fsl/qbman/bman.c
@@ -669,6 +669,9 @@  static int bm_alloc_bpid_range(u32 *result, u32 count)
 {
 	unsigned long addr;
 
+	if (!bm_bpalloc)
+		return -ENXIO;
+
 	addr = gen_pool_alloc(bm_bpalloc, count);
 	if (!addr)
 		return -ENOMEM;