class_get_device_by_driver()'s return value is not checked, in case of BSEC driver is not probed, dev is not set and used just after as parameter of misc_read() which leads to a Synchronous Abort.
Add uclass_get_device_by_driver()'s return value check to fix it. Signed-off-by: Patrice Chotard <[email protected]> --- board/st/common/cmd_stboard.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/board/st/common/cmd_stboard.c b/board/st/common/cmd_stboard.c index d77046499a0..58d9f205b92 100644 --- a/board/st/common/cmd_stboard.c +++ b/board/st/common/cmd_stboard.c @@ -92,6 +92,11 @@ static int do_stboard(struct cmd_tbl *cmdtp, int flag, int argc, DM_DRIVER_GET(stm32mp_bsec), &dev); + if (ret) { + puts("Can't get BSEC device\n"); + return CMD_RET_FAILURE; + } + ret = misc_read(dev, STM32_BSEC_OTP(BSEC_OTP_BOARD), &otp, sizeof(otp)); -- 2.43.0

