All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrice CHOTARD <patrice.chotard@st.com>
To: wen yang <yellowriver2010@hotmail.com>,
	"balbi@kernel.org" <balbi@kernel.org>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>
Cc: "linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] USB: dwc3: add missing of_node_put()
Date: Wed, 6 Feb 2019 08:46:57 +0000	[thread overview]
Message-ID: <d969fab6-7658-c88a-ee01-a7fd75b8e9c0@st.com> (raw)
In-Reply-To: <HK0PR02MB363451C20715075F224345CEB26C0@HK0PR02MB3634.apcprd02.prod.outlook.com>

Hi Wen

On 2/3/19 4:52 AM, wen yang wrote:
> The call to of_find_node_by_name returns a node pointer with refcount
> incremented thus it must be explicitly decremented here after the last
> usage.
> The of_find_device_by_node() takes a reference to the underlying device
> structure, we also should release that reference.
> This patch fixes those 2 issues.
> 
> Signed-off-by: Wen Yang <yellowriver2010@hotmail.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Cc: Felipe Balbi <balbi@kernel.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-usb@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
>  drivers/usb/dwc3/dwc3-st.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/usb/dwc3/dwc3-st.c b/drivers/usb/dwc3/dwc3-st.c
> index 1608138..fdd90d2 100644
> --- a/drivers/usb/dwc3/dwc3-st.c
> +++ b/drivers/usb/dwc3/dwc3-st.c
> @@ -262,17 +262,18 @@ static int st_dwc3_probe(struct platform_device *pdev)
>  	ret = of_platform_populate(node, NULL, NULL, dev);
>  	if (ret) {
>  		dev_err(dev, "failed to add dwc3 core\n");
> -		goto undo_softreset;
> +		goto put_node;
>  	}
>  
>  	child_pdev = of_find_device_by_node(child);
>  	if (!child_pdev) {
>  		dev_err(dev, "failed to find dwc3 core device\n");
>  		ret = -ENODEV;
> -		goto undo_softreset;
> +		goto put_node;
>  	}
>  
>  	dwc3_data->dr_mode = usb_get_dr_mode(&child_pdev->dev);
> +	put_device(&child_pdev->dev);
>  
>  	/*
>  	 * Configure the USB port as device or host according to the static
> @@ -283,15 +284,18 @@ static int st_dwc3_probe(struct platform_device *pdev)
>  	ret = st_dwc3_drd_init(dwc3_data);
>  	if (ret) {
>  		dev_err(dev, "drd initialisation failed\n");
> -		goto undo_softreset;
> +		goto put_node;
>  	}
>  
>  	/* ST glue logic init */
>  	st_dwc3_init(dwc3_data);
>  
>  	platform_set_drvdata(pdev, dwc3_data);
> +	of_node_put(child);
>  	return 0;
>  
> +put_node:
> +	of_node_put(child);
>  undo_softreset:
>  	reset_control_assert(dwc3_data->rstc_rst);
>  undo_powerdown:
> 

Reviewed-by: Patrice Chotard <patrice.chotard@st.com>

Thanks

WARNING: multiple messages have this Message-ID (diff)
From: Patrice CHOTARD <patrice.chotard@st.com>
To: wen yang <yellowriver2010@hotmail.com>,
	"balbi@kernel.org" <balbi@kernel.org>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>
Cc: "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] USB: dwc3: add missing of_node_put()
Date: Wed, 6 Feb 2019 08:46:57 +0000	[thread overview]
Message-ID: <d969fab6-7658-c88a-ee01-a7fd75b8e9c0@st.com> (raw)
In-Reply-To: <HK0PR02MB363451C20715075F224345CEB26C0@HK0PR02MB3634.apcprd02.prod.outlook.com>

Hi Wen

On 2/3/19 4:52 AM, wen yang wrote:
> The call to of_find_node_by_name returns a node pointer with refcount
> incremented thus it must be explicitly decremented here after the last
> usage.
> The of_find_device_by_node() takes a reference to the underlying device
> structure, we also should release that reference.
> This patch fixes those 2 issues.
> 
> Signed-off-by: Wen Yang <yellowriver2010@hotmail.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Cc: Felipe Balbi <balbi@kernel.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-usb@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
>  drivers/usb/dwc3/dwc3-st.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/usb/dwc3/dwc3-st.c b/drivers/usb/dwc3/dwc3-st.c
> index 1608138..fdd90d2 100644
> --- a/drivers/usb/dwc3/dwc3-st.c
> +++ b/drivers/usb/dwc3/dwc3-st.c
> @@ -262,17 +262,18 @@ static int st_dwc3_probe(struct platform_device *pdev)
>  	ret = of_platform_populate(node, NULL, NULL, dev);
>  	if (ret) {
>  		dev_err(dev, "failed to add dwc3 core\n");
> -		goto undo_softreset;
> +		goto put_node;
>  	}
>  
>  	child_pdev = of_find_device_by_node(child);
>  	if (!child_pdev) {
>  		dev_err(dev, "failed to find dwc3 core device\n");
>  		ret = -ENODEV;
> -		goto undo_softreset;
> +		goto put_node;
>  	}
>  
>  	dwc3_data->dr_mode = usb_get_dr_mode(&child_pdev->dev);
> +	put_device(&child_pdev->dev);
>  
>  	/*
>  	 * Configure the USB port as device or host according to the static
> @@ -283,15 +284,18 @@ static int st_dwc3_probe(struct platform_device *pdev)
>  	ret = st_dwc3_drd_init(dwc3_data);
>  	if (ret) {
>  		dev_err(dev, "drd initialisation failed\n");
> -		goto undo_softreset;
> +		goto put_node;
>  	}
>  
>  	/* ST glue logic init */
>  	st_dwc3_init(dwc3_data);
>  
>  	platform_set_drvdata(pdev, dwc3_data);
> +	of_node_put(child);
>  	return 0;
>  
> +put_node:
> +	of_node_put(child);
>  undo_softreset:
>  	reset_control_assert(dwc3_data->rstc_rst);
>  undo_powerdown:
> 

Reviewed-by: Patrice Chotard <patrice.chotard@st.com>

Thanks
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-02-06  8:47 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-03  3:52 [PATCH] USB: dwc3: add missing of_node_put() wen yang
2019-02-06  8:46 ` Patrice CHOTARD [this message]
2019-02-06  8:46   ` Patrice CHOTARD

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d969fab6-7658-c88a-ee01-a7fd75b8e9c0@st.com \
    --to=patrice.chotard@st.com \
    --cc=balbi@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=yellowriver2010@hotmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.