Re: [PATCH v2 2/2] of: __of_detach_node() - remove node from phandle cache
From: Michael Ellerman
Date: Tue Dec 18 2018 - 18:44:57 EST
Rob Herring <robh+dt@xxxxxxxxxx> writes:
> On Tue, Dec 18, 2018 at 2:33 PM Frank Rowand <frowand.list@xxxxxxxxx> wrote:
>>
>> On 12/18/18 12:09 PM, Frank Rowand wrote:
>> > On 12/18/18 12:01 PM, Rob Herring wrote:
>> >> On Tue, Dec 18, 2018 at 12:57 PM Frank Rowand <frowand.list@xxxxxxxxx> wrote:
>> >>>
>> >>> On 12/17/18 2:52 AM, Michael Ellerman wrote:
>> >>>> Hi Frank,
>> >>>>
>> >>>> frowand.list@xxxxxxxxx writes:
>> >>>>> From: Frank Rowand <frank.rowand@xxxxxxxx>
>> >>>>>
>> >>>>> Non-overlay dynamic devicetree node removal may leave the node in
>> >>>>> the phandle cache. Subsequent calls to of_find_node_by_phandle()
>> >>>>> will incorrectly find the stale entry. Remove the node from the
>> >>>>> cache.
>> >>>>>
>> >>>>> Add paranoia checks in of_find_node_by_phandle() as a second level
>> >>>>> of defense (do not return cached node if detached, do not add node
>> >>>>> to cache if detached).
>> >>>>>
>> >>>>> Reported-by: Michael Bringmann <mwb@xxxxxxxxxxxxxxxxxx>
>> >>>>> Signed-off-by: Frank Rowand <frank.rowand@xxxxxxxx>
>> >>>>> ---
>> >>>>
>> >>>> Similarly here can we add:
>> >>>>
>> >>>> Fixes: 0b3ce78e90fc ("of: cache phandle nodes to reduce cost of of_find_node_by_phandle()")
>> >>>
>> >>> Yes, thanks.
>> >>>
>> >>>
>> >>>> Cc: stable@xxxxxxxxxxxxxxx # v4.17+
>> >>>
>> >>> Nope, 0b3ce78e90fc does not belong in stable (it is a feature, not a bug
>> >>> fix). So the bug will not be in stable.
>> >>
>> >> 0b3ce78e90fc landed in v4.17, so Michael's line above is correct.
>> >> Annotating it with 4.17 only saves Greg from trying and then emailing
>> >> us to backport this patch as it wouldn't apply.
>> >
>> > Thanks for the correction. I was both under-thinking and over-thinking,
>> > ending up with an incorrect answer.
>> >
>> > Can you add the Cc: to version 3 patch comments (both 1/2 and 2/2) or do
>> > you want me to re-spin?
>>
>> Now that my thinking has been straightened out, a little bit more checking
>> for the other pre-requisite patches show:
>>
>> v4.18: commit b9952b5218ad ("of: overlay: update phandle cache on overlay apply and remove")
>> v4.19: commit e54192b48da7 ("of: fix phandle cache creation for DTs with no phandles")
>>
>> These can be addressed by changing the "Cc:" to ... # v4.19+
>> because stable v4.17.* and v4.18.* are end of life.
>
> EOL shouldn't factor into it. There's always the possibility someone
> else picks any kernel version.
Yeah, there are other stable branches out there, so the tag should point
to the correct version regardless of whether it's currently EOL on
kernel.org.
>> Or the pre-requisites can be listed:
>>
>> # v4.17: b9952b5218ad of: overlay: update phandle cache
>> # v4.17: e54192b48da7 of: fix phandle cache creation
>> # v4.17
>>
>> # v4.18: e54192b48da7 of: fix phandle cache creation
>> # v4.18
>>
>> # v4.19+
>>
>> Do you have a preference?
>
> I think we just list v4.17 and be done with it.
Yep, anyone who wants to backport it can work it out, or ask us.
cheers