On Fri, Nov 17, 2023 at 06:36:49PM +0100, Johan Hovold wrote: > Make sure to remove the software node also on (ACPI) probe errors to > avoid leaking the underlying resources. > > Note that the software node is only used for ACPI probe so the driver > unbind tear down is updated to match probe. > > Fixes: 8dc6e6dd1bee ("usb: dwc3: qcom: Constify the software node") > Cc: stable@xxxxxxxxxxxxxxx # 5.12 > Cc: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx> Acked-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/usb/dwc3/dwc3-qcom.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c > index 00c3021b43ce..0703f9b85cda 100644 > --- a/drivers/usb/dwc3/dwc3-qcom.c > +++ b/drivers/usb/dwc3/dwc3-qcom.c > @@ -932,10 +932,12 @@ static int dwc3_qcom_probe(struct platform_device *pdev) > interconnect_exit: > dwc3_qcom_interconnect_exit(qcom); > depopulate: > - if (np) > + if (np) { > of_platform_depopulate(&pdev->dev); > - else > + } else { > + device_remove_software_node(&qcom->dwc3->dev); > platform_device_del(qcom->dwc3); > + } > platform_device_put(qcom->dwc3); > clk_disable: > for (i = qcom->num_clocks - 1; i >= 0; i--) { > @@ -955,11 +957,12 @@ static void dwc3_qcom_remove(struct platform_device *pdev) > struct device *dev = &pdev->dev; > int i; > > - device_remove_software_node(&qcom->dwc3->dev); > - if (np) > + if (np) { > of_platform_depopulate(&pdev->dev); > - else > + } else { > + device_remove_software_node(&qcom->dwc3->dev); > platform_device_del(qcom->dwc3); > + } > platform_device_put(qcom->dwc3); > > for (i = qcom->num_clocks - 1; i >= 0; i--) { > -- > 2.41.0 -- heikki