Hi Ye, Thank you for the patch.
On Fri, May 22, 2026 at 15:27, Ye Li <[email protected]> wrote: > Current implementation does not check the return value of spl load > function. If the spl load is failed, SPL may meet crash due to > spl_image variable is not initialized. Add the failure check, > so SPL can print and stop with error. > > Signed-off-by: Ye Li <[email protected]> We could add the following to the commit message: Fixes: 2c72ead73874 ("usb: gadget: f_sdp: Allow SPL to load and boot FIT via SDP") Reviewed-by: Mattijs Korpershoek <[email protected]> > --- > drivers/usb/gadget/f_sdp.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/gadget/f_sdp.c b/drivers/usb/gadget/f_sdp.c > index f72e27028b7..cd2c282247a 100644 > --- a/drivers/usb/gadget/f_sdp.c > +++ b/drivers/usb/gadget/f_sdp.c > @@ -75,6 +75,7 @@ struct hid_report { > #define SDP_HID_PACKET_SIZE_EP1 1024 > > #define SDP_EXIT 1 > +#define SDP_FAIL 2 > > struct sdp_command { > u16 cmd; > @@ -840,11 +841,14 @@ static int sdp_handle_in_ep(struct spl_image_info > *spl_image, > #ifdef CONFIG_SPL_LOAD_FIT > if (image_get_magic(header) == FDT_MAGIC) { > struct spl_load_info load; > + int ret; > > debug("Found FIT\n"); > spl_load_init(&load, sdp_load_read, header, 1); > - spl_load_simple_fit(spl_image, &load, 0, > - header); > + ret = spl_load_simple_fit(spl_image, &load, 0, > + header); > + if (ret) > + return SDP_FAIL; > > return SDP_EXIT; > } > @@ -852,9 +856,13 @@ static int sdp_handle_in_ep(struct spl_image_info > *spl_image, > if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER) && > valid_container_hdr((void *)header)) { > struct spl_load_info load; > + int ret; > > spl_load_init(&load, sdp_load_read, header, 1); > - spl_load_imx_container(spl_image, &load, 0); > + ret = spl_load_imx_container(spl_image, &load, > 0); > + if (ret) > + return SDP_FAIL; > + > return SDP_EXIT; > } > > @@ -924,6 +932,8 @@ int spl_sdp_handle(struct udevice *udc, struct > spl_image_info *spl_image, > > if (flag == SDP_EXIT) > return 0; > + else if (flag == SDP_FAIL) > + return -EIO; > > schedule(); > dm_usb_gadget_handle_interrupts(udc); > -- > 2.37.1

