diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
index 7a6563f83fd1d5e42c3d5f7d3a0eb2fd774c3ba6..1428af85cffdb2644994ea2270e98eceeeb9f67a 100644
--- a/drivers/usb/gadget/ci_udc.c
+++ b/drivers/usb/gadget/ci_udc.c
@@ -826,6 +826,7 @@ static int ci_udc_probe(void)
 
 	ci_ep_alloc_request(&controller.ep[0].ep, 0);
 	if (!controller.ep0_req) {
+		free(controller.items_mem);
 		free(controller.epts);
 		return -ENOMEM;
 	}