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

Rob Herring
2014-11-19T15:39:59Z

On Wed, Nov 19, 2014 at 8:49 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Wednesday 19 November 2014 08:45:58 Rob Herring wrote:
>> > 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.
>>
>
> No, I didn't misread it but I should have been clearer with the intention:
> The idea is to tell the compiler that we know it will be NULL when CONFIG_OF
> is unset, so it can optimize out all code that does
>
> struct device_node *dn = dev_of_node(dev);
>
> if (dn) {
> ...
> /* complex code */
> ...
> }
>
> and we can avoid using an #ifdef or if(IS_ENABLED()) in the source to
> compile out the DT-only sections of a driver.

Oh, right. That would definitely be worthwhile to do.

Rob