Re: [PATCH] drivers/core/of: Add symlink to device-tree from devices with an OF node

Rob Herring
2014-11-19T14:46:21Z

On Wed, Nov 19, 2014 at 2:38 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Wednesday 19 November 2014 13:35:44 Benjamin Herrenschmidt wrote:
>> On Wed, 2014-11-19 at 10:39 +1100, Jeremy Kerr wrote:
>> > Hi Rob,
>> >
>> > >> diff --git a/drivers/base/core.c b/drivers/base/core.c
>> > >> index 20da3ad..8c7b607 100644
>> > >> --- a/drivers/base/core.c
>> > >> +++ b/drivers/base/core.c
>> > >> @@ -493,6 +493,15 @@ static int device_add_attrs(struct device *dev)
>> > >> goto err_remove_dev_groups;
>> > >> }
>> > >>
>> > >> +#ifdef CONFIG_OF
>> > >> + if (dev->of_node) {
>> > >
>> > > if (IS_ENABLED(CONFIG_OF) && dev->of_node)
>> >
>> > struct device doesn't have an of_node member if !CONFIG_OF, so we'll
>> > need to disable this block in the preprocessor.
>>
>> Actually that's no longer the case since 2.6.39 afaik
>
> I wonder if we should create a small helper for this, like
>
> static inline struct device_node *dev_of_node(struct device *of_node)
> {
> if (!IS_ENABLED(CONFIG_OF))
> return NULL;
>
> return dev->of_node;
> }
>
> Adding the IS_ENABLED() in a lot of drivers isn't horrible, but we seem
> to be doing it a lot.

I think you misread things. of_node is always present now, so it
should always be NULL for !CONFIG_OF.

Rob