Re: [PATCH v5.1 3/3] of: Support const and non-const use for to_of_node()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi Sakari,

Thankyou for the patch,

On 23/05/17 07:39, Sakari Ailus wrote:
> Turn to_of_node() into a macro in order to support both const and
> non-const use. Additionally make the fwnode argument to is_of_node() const
> as well.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> ---
> since v5:
> 
> - Put const to the argument, not the type returned.
> 
>  include/linux/of.h | 20 ++++++++++++--------
>  1 file changed, 12 insertions(+), 8 deletions(-)
> 
> diff --git a/include/linux/of.h b/include/linux/of.h
> index a7ccf34..aaf9c18 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -148,16 +148,20 @@ extern raw_spinlock_t devtree_lock;
>  #ifdef CONFIG_OF
>  void of_core_init(void);
>  
> -static inline bool is_of_node(struct fwnode_handle *fwnode)
> +static inline bool is_of_node(const struct fwnode_handle *fwnode)
>  {
>  	return !IS_ERR_OR_NULL(fwnode) && fwnode->type == FWNODE_OF;
>  }
>  
> -static inline struct device_node *to_of_node(struct fwnode_handle *fwnode)
> -{
> -	return is_of_node(fwnode) ?
> -		container_of(fwnode, struct device_node, fwnode) : NULL;
> -}
> +#define to_of_node(__fwnode)						\
> +	({								\
> +		typeof(__fwnode) __to_of_node_fwnode = __fwnode;	\

Again here, I think it might need /= __fwnode/= (__fwnode)/

Other than that - this looks good to me.

Reviewed-by: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx>

> +									\
> +		is_of_node(__to_of_node_fwnode) ?			\
> +			container_of(__to_of_node_fwnode,		\
> +				     struct device_node, fwnode) :	\
> +			NULL;						\
> +	})
>  
>  #define of_fwnode_handle(node)						\
>  	({								\
> @@ -539,12 +543,12 @@ static inline void of_core_init(void)
>  {
>  }
>  
> -static inline bool is_of_node(struct fwnode_handle *fwnode)
> +static inline bool is_of_node(const struct fwnode_handle *fwnode)
>  {
>  	return false;
>  }
>  
> -static inline struct device_node *to_of_node(struct fwnode_handle *fwnode)
> +static inline struct device_node *to_of_node(const struct fwnode_handle *fwnode)
>  {
>  	return NULL;
>  }
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux