[PATCH v1] usb: dwc3: add device put function to decrement the ref-counted reference

Stanley Chang posted 1 patch 2 years, 1 month ago
drivers/usb/dwc3/dwc3-rtk.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH v1] usb: dwc3: add device put function to decrement the ref-counted reference
Posted by Stanley Chang 2 years, 1 month ago
When the function exits, the count should be decremented via
platform_device_put and of_node_put.

Fixes: 34c200483569 ("usb: dwc3: add Realtek DHC RTD SoC dwc3 glue layer driver")
Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
---
 drivers/usb/dwc3/dwc3-rtk.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/usb/dwc3/dwc3-rtk.c b/drivers/usb/dwc3/dwc3-rtk.c
index 590028e8fdcb..9d6f2a8bd6ce 100644
--- a/drivers/usb/dwc3/dwc3-rtk.c
+++ b/drivers/usb/dwc3/dwc3-rtk.c
@@ -187,6 +187,7 @@ static enum usb_device_speed __get_dwc3_maximum_speed(struct device_node *np)
 
 	ret = match_string(speed_names, ARRAY_SIZE(speed_names), maximum_speed);
 
+	of_node_put(dwc3_np);
 	return (ret < 0) ? USB_SPEED_UNKNOWN : ret;
 }
 
@@ -339,6 +340,8 @@ 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:
-- 
2.34.1
Re: [PATCH v1] usb: dwc3: add device put function to decrement the ref-counted reference
Posted by Johan Hovold 2 years, 1 month ago
On Tue, Nov 07, 2023 at 05:12:51PM +0800, Stanley Chang wrote:
> When the function exits, the count should be decremented via
> platform_device_put and of_node_put.

This isn't really a self-contained commit message (and your use of
'count' is too vague). You're also changing two functions in two
different ways here.

> Fixes: 34c200483569 ("usb: dwc3: add Realtek DHC RTD SoC dwc3 glue layer driver")
> Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
> ---
>  drivers/usb/dwc3/dwc3-rtk.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/usb/dwc3/dwc3-rtk.c b/drivers/usb/dwc3/dwc3-rtk.c
> index 590028e8fdcb..9d6f2a8bd6ce 100644
> --- a/drivers/usb/dwc3/dwc3-rtk.c
> +++ b/drivers/usb/dwc3/dwc3-rtk.c
> @@ -187,6 +187,7 @@ static enum usb_device_speed __get_dwc3_maximum_speed(struct device_node *np)
>  
>  	ret = match_string(speed_names, ARRAY_SIZE(speed_names), maximum_speed);
>  
> +	of_node_put(dwc3_np);

You're still leaking a reference in the of_property_read_string() error
path just above.

>  	return (ret < 0) ? USB_SPEED_UNKNOWN : ret;
>  }
>  
> @@ -339,6 +340,8 @@ 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);

Please keep the new line before return for readability.

>  	return 0;
>  
>  err_pdev_put:

Johan
RE: [PATCH v1] usb: dwc3: add device put function to decrement the ref-counted reference
Posted by Stanley Chang[昌育德] 2 years, 1 month ago
Hi Johan,

> 
> On Tue, Nov 07, 2023 at 05:12:51PM +0800, Stanley Chang wrote:
> > When the function exits, the count should be decremented via
> > platform_device_put and of_node_put.
> 
> This isn't really a self-contained commit message (and your use of 'count' is
> too vague). You're also changing two functions in two different ways here.

I will modify the commit message.

> > Fixes: 34c200483569 ("usb: dwc3: add Realtek DHC RTD SoC dwc3 glue
> > layer driver")
> > Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
> > ---
> >  drivers/usb/dwc3/dwc3-rtk.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/usb/dwc3/dwc3-rtk.c b/drivers/usb/dwc3/dwc3-rtk.c
> > index 590028e8fdcb..9d6f2a8bd6ce 100644
> > --- a/drivers/usb/dwc3/dwc3-rtk.c
> > +++ b/drivers/usb/dwc3/dwc3-rtk.c
> > @@ -187,6 +187,7 @@ static enum usb_device_speed
> > __get_dwc3_maximum_speed(struct device_node *np)
> >
> >       ret = match_string(speed_names, ARRAY_SIZE(speed_names),
> > maximum_speed);
> >
> > +     of_node_put(dwc3_np);

I will fixed this.

Thanks,
Stanley

> You're still leaking a reference in the of_property_read_string() error path just
> above.
> 
> >       return (ret < 0) ? USB_SPEED_UNKNOWN : ret;  }
> >
> > @@ -339,6 +340,8 @@ 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);
> 
> Please keep the new line before return for readability.
> 
> >       return 0;
> >
> >  err_pdev_put:
> 
> Johan
Re: [PATCH v1] usb: dwc3: add device put function to decrement the ref-counted reference
Posted by Thinh Nguyen 2 years, 1 month ago
On Tue, Nov 07, 2023, Stanley Chang wrote:
> When the function exits, the count should be decremented via
> platform_device_put and of_node_put.
> 
> Fixes: 34c200483569 ("usb: dwc3: add Realtek DHC RTD SoC dwc3 glue layer driver")
> Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
> ---
>  drivers/usb/dwc3/dwc3-rtk.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/usb/dwc3/dwc3-rtk.c b/drivers/usb/dwc3/dwc3-rtk.c
> index 590028e8fdcb..9d6f2a8bd6ce 100644
> --- a/drivers/usb/dwc3/dwc3-rtk.c
> +++ b/drivers/usb/dwc3/dwc3-rtk.c
> @@ -187,6 +187,7 @@ static enum usb_device_speed __get_dwc3_maximum_speed(struct device_node *np)
>  
>  	ret = match_string(speed_names, ARRAY_SIZE(speed_names), maximum_speed);
>  
> +	of_node_put(dwc3_np);
>  	return (ret < 0) ? USB_SPEED_UNKNOWN : ret;
>  }
>  
> @@ -339,6 +340,8 @@ static int dwc3_rtk_probe_dwc3_core(struct dwc3_rtk *rtk)
>  
>  	switch_usb2_role(rtk, rtk->cur_role);
>  
> +	platform_device_put(dwc3_pdev);

Don't you use this after probe? Why put here and not on remove?

BR,
Thinh

> +	of_node_put(dwc3_node);
>  	return 0;
>  
>  err_pdev_put:
> -- 
> 2.34.1
> 
RE: [PATCH v1] usb: dwc3: add device put function to decrement the ref-counted reference
Posted by Stanley Chang[昌育德] 2 years, 1 month ago

> -----Original Message-----
> From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
> Sent: Friday, November 10, 2023 10:34 AM
> To: Stanley Chang[昌育德] <stanley_chang@realtek.com>
> Cc: Thinh Nguyen <Thinh.Nguyen@synopsys.com>; Christophe JAILLET
> <christophe.jaillet@wanadoo.fr>; Greg Kroah-Hartman
> <gregkh@linuxfoundation.org>; linux-usb@vger.kernel.org;
> linux-kernel@vger.kernel.org
> Subject: Re: [PATCH v1] usb: dwc3: add device put function to decrement the
> ref-counted reference
> 
> 
> External mail.
> 
> 
> 
> On Tue, Nov 07, 2023, Stanley Chang wrote:
> > When the function exits, the count should be decremented via
> > platform_device_put and of_node_put.
> >
> > Fixes: 34c200483569 ("usb: dwc3: add Realtek DHC RTD SoC dwc3 glue
> > layer driver")
> > Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
> > ---
> >  drivers/usb/dwc3/dwc3-rtk.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/usb/dwc3/dwc3-rtk.c b/drivers/usb/dwc3/dwc3-rtk.c
> > index 590028e8fdcb..9d6f2a8bd6ce 100644
> > --- a/drivers/usb/dwc3/dwc3-rtk.c
> > +++ b/drivers/usb/dwc3/dwc3-rtk.c
> > @@ -187,6 +187,7 @@ static enum usb_device_speed
> > __get_dwc3_maximum_speed(struct device_node *np)
> >
> >       ret = match_string(speed_names, ARRAY_SIZE(speed_names),
> > maximum_speed);
> >
> > +     of_node_put(dwc3_np);
> >       return (ret < 0) ? USB_SPEED_UNKNOWN : ret;  }
> >
> > @@ -339,6 +340,8 @@ static int dwc3_rtk_probe_dwc3_core(struct
> > dwc3_rtk *rtk)
> >
> >       switch_usb2_role(rtk, rtk->cur_role);
> >
> > +     platform_device_put(dwc3_pdev);
> 
> Don't you use this after probe? Why put here and not on remove?

I don't use dwc3_pdev in driver.
I use rtk->dwc and dwc is removed by of_platform_depopulate on remove.
So I think I don't need to keep the count of dwc3_pdev.

Thanks,
Stanley

> 
> BR,
> Thinh
> 
> > +     of_node_put(dwc3_node);
> >       return 0;
> >
> >  err_pdev_put:
> > --
> > 2.34.1
> >