[linux-yocto] [PATCH] of: Fix of_populate_phandle_cache compilation error

Bruce Ashfield bruce.ashfield at windriver.com
Mon Nov 12 12:17:15 PST 2018


On 2018-11-12 4:49 a.m., He Zhe wrote:
> 
> 
> On 2018/11/6 00:05, Bruce Ashfield wrote:
>> On 11/2/18 4:42 AM, He Zhe wrote:
>>> When merging tag 'v4.18.10' into v4.18/standard/base, 05a9931 "of: fix phandle
>>> cache creation for DTs with no phandles" from v4.18.10 introduces an undefined
>>> label "out" and causes the follow compilation error.
>>>
>>> drivers/of/base.c: In function 'of_populate_phandle_cache':
>>> drivers/of/base.c:124:3: error: label 'out' used but not defined
>>>      goto out;
>>>      ^~~~
>>>
>>> This is because the base of 05a9931 has been modified by b75caf0 "of: allocate /
>>> free phandle cache outside of the devtree_lock".
>>>
>>> This patch picks a part of
>>> https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git/commit/?h=
>>> linux-4.18.y-rt&id=9866102318991051e5e99085d3c88d6483ee70d4
>>> to fix this error, and can be dropped when rebasing above 9866102.
>>
>> merged.
> 
> Hi Bruce,
> 
> This also needs to be merged to linux-yocto-dev RT branches.

Are you sure ? linux-yocto-dev doesn't currently have the 4.19-rt
patches integrated. I thought this was to fixup a merge issue
between standard/base and the rt patch.

Bruce

> 
> Thanks,
> Zhe
> 
>>
>> Bruce
>>
>>>
>>> Signed-off-by: He Zhe <zhe.he at windriver.com>
>>> ---
>>> This error affects all arches building preempt-rt kernel with "of" by default.
>>>
>>>    drivers/of/base.c | 4 ++--
>>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/of/base.c b/drivers/of/base.c
>>> index ecb495df4aad..49da3726cda5 100644
>>> --- a/drivers/of/base.c
>>> +++ b/drivers/of/base.c
>>> @@ -119,14 +119,14 @@ void of_populate_phandle_cache(void)
>>>                phandles++;
>>>          raw_spin_unlock_irqrestore(&devtree_lock, flags);
>>> +    kfree(shadow);
>>>          if (!phandles)
>>> -        goto out;
>>> +        return;
>>>          cache_entries = roundup_pow_of_two(phandles);
>>>        phandle_cache_mask = cache_entries - 1;
>>>    -    kfree(shadow);
>>>        shadow = kcalloc(cache_entries, sizeof(*phandle_cache), GFP_KERNEL);
>>>          if (!shadow)
>>>
>>
>>
> 



More information about the linux-yocto mailing list