[linux-yocto] [PATCH] of: Fix of_populate_phandle_cache compilation error
Bruce Ashfield
bruce.ashfield at windriver.com
Tue Nov 13 05:35:12 PST 2018
On 2018-11-12 10:45 p.m., He Zhe wrote:
>
>
> On 2018/11/13 04:17, Bruce Ashfield wrote:
>> 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.
>
> Sorry, a mistake, I thought of linux-yocto which is already ok.
>
ok. Thanks for confirming!
Bruce
> Zhe
>
>>
>> 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