All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] of/platform: Avoid compilation warning
Date: Wed, 27 May 2020 12:35:55 -0600	[thread overview]
Message-ID: <20200527183555.GA2512243@bogus> (raw)
In-Reply-To: <20200514170707.24466-1-miquel.raynal@bootlin.com>

On Thu, May 14, 2020 at 07:07:07PM +0200, Miquel Raynal wrote:
> The of_find_device_by_node() helper has its dummy counterpart for when
> CONFIG_OF is not enabled. However, it is clearly stated in the kernel
> documentation that it "takes a reference to the embedded struct device
> which needs to be dropped after use". Which means the of_dev_put()
> helper might have to be called afterwards. Unfortunately, there is no
> of_dev_put() dummy function if OF_CONFIG is not enabled which seems
> odd in this case. The of_dev_put() helper is pretty simple, it just
> checks the validity of the single argument and calls put_device() on
> it. One can just call put_device() directly to avoid any build issue
> but I find much more accurate in this case to create the dummy
> helper.
> 
> With this helper, a file using of_find_device_by_node() can also call
> of_dev_put() without triggering the following:

IMO, you should use platform_device_put() instead. It has the NULL check 
too.

I imagine of_dev_put() is left over from when OF devices were not 
platform devices. 
 
> error: implicit declaration of function ‘of_dev_put’; did you mean ‘of_node_put’? [-Werror=implicit-function-declaration]
> 
> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
> ---
>  include/linux/of_platform.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h
> index 84a966623e78..84d9e60e517e 100644
> --- a/include/linux/of_platform.h
> +++ b/include/linux/of_platform.h
> @@ -54,11 +54,13 @@ extern struct platform_device *of_device_alloc(struct device_node *np,
>  					 struct device *parent);
>  #ifdef CONFIG_OF
>  extern struct platform_device *of_find_device_by_node(struct device_node *np);
> +extern void of_dev_put(struct platform_device *dev);
>  #else
>  static inline struct platform_device *of_find_device_by_node(struct device_node *np)
>  {
>  	return NULL;
>  }
> +static inline void of_dev_put(struct platform_device *dev) { }
>  #endif
>  
>  /* Platform devices and busses creation */
> -- 
> 2.20.1
> 

  reply	other threads:[~2020-05-27 18:52 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-14 17:07 [PATCH] of/platform: Avoid compilation warning Miquel Raynal
2020-05-27 18:35 ` Rob Herring [this message]
2020-05-28 11:03   ` Miquel Raynal

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=20200527183555.GA2512243@bogus \
    --to=robh@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=thomas.petazzoni@bootlin.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.