@@ -161,7 +161,7 @@ static inline bool is_of_node(const struct fwnode_handle *fwnode)
is_of_node(__to_of_node_fwnode) ? \
container_of(__to_of_node_fwnode, \
struct device_node, fwnode) : \
- NULL; \
+ (struct device_node *)NULL; \
})
#define of_fwnode_handle(node) \
@@ -169,7 +169,8 @@ static inline bool is_of_node(const struct fwnode_handle *fwnode)
typeof(node) __of_fwnode_handle_node = (node); \
\
__of_fwnode_handle_node ? \
- &__of_fwnode_handle_node->fwnode : NULL; \
+ &__of_fwnode_handle_node->fwnode : \
+ (struct fwnode_handle *)NULL; \
})
static inline bool of_have_populated_dt(void)
to_of_node() macro checks whether the fwnode_handle passed to it is not an OF node, and if so, returns NULL in order to be NULL-safe. Otherwise it returns the pointer to the OF node which the fwnode_handle contains. The problem with returning NULL is that its type was void *, which sometimes matters. Explicitly return struct device_node * instead. Make a similar change to of_fwnode_handle() as well. Fixes: d20dc1493db4 ("of: Support const and non-const use for to_of_node()") Fixes: debd3a3b27c7 ("of: Make of_fwnode_handle() safer") Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> --- Hi Mauro, Could you check whether this addresses the smatch issue with the xilinx driver? Thanks. include/linux/of.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)