On 8/19/19 9:24 AM, Nishka Dasgupta wrote: > In function st_dwc3_probe, variable child_pdev takes the value returned > by of_find_device_by_node, which gets a device pointer but does not put > it. If child_pdev is not put before the probe function returns, it may > cause a reference leak. Hence put child_pdev after its last usage. > Issue found with Coccinelle. > > Signed-off-by: Nishka Dasgupta <nishkadg.linux@xxxxxxxxx> > --- > drivers/usb/dwc3/dwc3-st.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/usb/dwc3/dwc3-st.c b/drivers/usb/dwc3/dwc3-st.c > index 6f52c749cd58..c682420f25ca 100644 > --- a/drivers/usb/dwc3/dwc3-st.c > +++ b/drivers/usb/dwc3/dwc3-st.c > @@ -274,6 +274,7 @@ static int st_dwc3_probe(struct platform_device *pdev) > > dwc3_data->dr_mode = usb_get_dr_mode(&child_pdev->dev); > of_node_put(child); > + of_dev_put(child_pdev); > > /* > * Configure the USB port as device or host according to the static Reviewed-by: Patrice Chotard <patrice.chotard@xxxxxx> Thanks