usb: dwc3: add missing of_node_put and platform_device_put
authorStanley Chang <stanley_chang@realtek.com>
Fri, 17 Nov 2023 07:03:05 +0000 (15:03 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Nov 2023 14:30:43 +0000 (15:30 +0100)
of_get_compatible_child performs an of_node_get, so an of_node_put is
required. Add platform_device_put to match with of_find_device_by_node.

Fixes: 34c200483569 ("usb: dwc3: add Realtek DHC RTD SoC dwc3 glue layer driver")
Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/20231117070311.32502-1-stanley_chang@realtek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/dwc3-rtk.c

index 590028e8fdcb2338f76c2b8c68ff84f909cc178f..3cd6b184551ce2695e31bf6cf96fe63e8121550c 100644 (file)
@@ -183,10 +183,13 @@ static enum usb_device_speed __get_dwc3_maximum_speed(struct device_node *np)
 
        ret = of_property_read_string(dwc3_np, "maximum-speed", &maximum_speed);
        if (ret < 0)
-               return USB_SPEED_UNKNOWN;
+               goto out;
 
        ret = match_string(speed_names, ARRAY_SIZE(speed_names), maximum_speed);
 
+out:
+       of_node_put(dwc3_np);
+
        return (ret < 0) ? USB_SPEED_UNKNOWN : ret;
 }
 
@@ -339,6 +342,9 @@ static int dwc3_rtk_probe_dwc3_core(struct dwc3_rtk *rtk)
 
        switch_usb2_role(rtk, rtk->cur_role);
 
+       platform_device_put(dwc3_pdev);
+       of_node_put(dwc3_node);
+
        return 0;
 
 err_pdev_put: