Subject: [RFC/PATCH] of: Mark property::value as const

From: [email-masked] (Frank Rowand)
Date: Thu, 23 Feb 2017 15:23:19 -0800

On 02/23/17 14:09, Rob Herring wrote:
> On Thu, Feb 23, 2017 at 2:58 PM, Frank Rowand <[email-masked]> wrote:
>> On 02/23/17 11:54, Frank Rowand wrote:
>>> On 02/13/17 18:50, Stephen Boyd wrote:
>>>> The 'blob' we pass into populate_properties() is marked as const,
>>>> but we cast that const away when we assign the result of
>>>> fdt_getprop_by_offset() to pp->value. Let's mark value as const
>>>> instead, so that code can't mistakenly write to the value of the
>>>> property that we've so far advertised as const.
>>>>
>>>> Unfortunately, this exposes a problem with the fdt resolver code,
>>>> where we overwrite the value member of properties of phandles to
>>>> update them with their final value. Add a comment for now to
>>>> indicate where we're potentially writing over const data.
>>>
>>> The resolver should not be over writing anything in the FDT.  I'll
>>> look at what is going on there.
>>>
>>> The FDT we expose to user space should be the FDT we booted with,
>>> not something later modified.
>>
>> It seems that /sys/firmware/fdt is not documented.  I'll look into
>> fixing that.
> 
> That's because the "official" interface is /proc/device-tree/ which is
> now a symlink. IIRC, it is documented to use /proc/device-tree, not
> the sysfs path.
> 
> Rob
> .
> 

Documentation/ABI/testing/sysfs-firmware-ofw describes
/sys/firmware/devicetree/* but not /sys/firmware/fdt

It also describes the /proc/device-tree symlink to
/sys/firmware/devicetree/base as the official
stable ABI, as you mentioned.

So it is just fdt that I have not found the documentation
for.

-Frank