From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> We are counting of node by using of_node_get/put(), but not have of_node_read() which can be used to check count. Let's add it Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> --- drivers/of/dynamic.c | 14 ++++++++++++++ include/linux/of.h | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c index f4f8ed9..db5fdf3 100644 --- a/drivers/of/dynamic.c +++ b/drivers/of/dynamic.c @@ -49,6 +49,20 @@ void of_node_put(struct device_node *node) } EXPORT_SYMBOL(of_node_put); +/** + * of_node_read() - read refcount of a node + * @node: Node to dec refcount, NULL is supported to simplify writing of + * callers + */ +unsigned int of_node_read(struct device_node *node) +{ + if (node) + return kobject_read(&node->kobj); + + return 0; +} +EXPORT_SYMBOL(of_node_read); + static BLOCKING_NOTIFIER_HEAD(of_reconfig_chain); int of_reconfig_notifier_register(struct notifier_block *nb) diff --git a/include/linux/of.h b/include/linux/of.h index 4d25e4f..8be0ca8 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -122,6 +122,7 @@ static inline void of_node_init(struct device_node *node) #ifdef CONFIG_OF_DYNAMIC extern struct device_node *of_node_get(struct device_node *node); extern void of_node_put(struct device_node *node); +unsigned int of_node_read(struct device_node *node); #else /* CONFIG_OF_DYNAMIC */ /* Dummy ref counting routines - to be implemented later */ static inline struct device_node *of_node_get(struct device_node *node) @@ -129,6 +130,10 @@ static inline struct device_node *of_node_get(struct device_node *node) return node; } static inline void of_node_put(struct device_node *node) { } +static inline unsigned int of_node_read(struct device_node *node) +{ + return 0; +} #endif /* !CONFIG_OF_DYNAMIC */ /* Pointer for first entry in chain of all nodes. */ -- 1.9.1 -- 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