Message ID | 20231114101645.20065-1-stanley_chang@realtek.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v2] usb: dwc3: add missing of_node_put and platform_device_put | expand |
On 11/14/23 1:16 PM, Stanley Chang wrote: > of_get_compatible_child performs an of_node_get, so an of_node_get is You mean of_node_put is required? > 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> > --- > v1 to v2 change: > 1. Modify the commit message. > 2. Add of_node_get in the of_property_read_string() error path. [...] MBR, Sergey
Hi Sergey, > On 11/14/23 1:16 PM, Stanley Chang wrote: > > > of_get_compatible_child performs an of_node_get, so an of_node_get is > > You mean of_node_put is required? Right, it is of_node_put. I'm sorry for the typo. Thanks, Stanley > > 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> > > --- > > v1 to v2 change: > > 1. Modify the commit message. > > 2. Add of_node_get in the of_property_read_string() error path. > [...] > > MBR, Sergey
diff --git a/drivers/usb/dwc3/dwc3-rtk.c b/drivers/usb/dwc3/dwc3-rtk.c index 590028e8fdcb..3cd6b184551c 100644 --- a/drivers/usb/dwc3/dwc3-rtk.c +++ b/drivers/usb/dwc3/dwc3-rtk.c @@ -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: