Re: [PATCH] firmware: xlnx-zynqmp: fix compilation warning

From: Michal Simek
Date: Mon Nov 23 2020 - 01:58:36 EST




On 21. 11. 20 8:09, Wendy Liang wrote:
> On Fri, Nov 20, 2020 at 10:14:52AM +0100, Michal Simek wrote:
>>
>>
>> On 18. 11. 20 23:31, Wendy Liang wrote:
>>> Fix compilation warning when ZYNQMP_FIRMWARE is not defined.
>>>
>>> include/linux/firmware/xlnx-zynqmp.h: In function
>>> 'zynqmp_pm_get_eemi_ops':
>>> include/linux/firmware/xlnx-zynqmp.h:363:9: error: implicit
>>> declaration of function 'ERR_PTR'
>>> [-Werror=implicit-function-declaration]
>>> 363 | return ERR_PTR(-ENODEV);
>>>
>>> include/linux/firmware/xlnx-zynqmp.h:363:18: note: each undeclared
>>> identifier is reported only once for each function it appears in
>>> include/linux/firmware/xlnx-zynqmp.h: In function
>>> 'zynqmp_pm_get_api_version':
>>> include/linux/firmware/xlnx-zynqmp.h:367:10: error: 'ENODEV'
>>> undeclared (first use in this function)
>>> 367 | return -ENODEV;
>>> | ^~~~~~
>>
>> Are these issues caused by your AI driver?
>> If not, can you please point me to .config which reports this issue?
> It is from testbot, the ZYNQMP_FIMRWARE is not set.
> The AI engine driver c file includes the firmware/xlnx-zynqmp.h. The file
> doesn't include linux/err.h before including this xlnx-zynqmp.h file.
> However, the AI engine driver includes other header which includes
> linux/err.h.
>
> It is good to include the linux/err.h explicitly too in the AI engine
> file. But for the firmware/xlnx-zynqmp.h it will be better to include
> linux/err.h as it is using it.
>
>>
>>>
>>> Signed-off-by: Wendy Liang <wendy.liang@xxxxxxxxxx>
>>> ---
>>> include/linux/firmware/xlnx-zynqmp.h | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
>>> index 5968df8..7b6f9fc 100644
>>> --- a/include/linux/firmware/xlnx-zynqmp.h
>>> +++ b/include/linux/firmware/xlnx-zynqmp.h
>>> @@ -13,6 +13,10 @@
>>> #ifndef __FIRMWARE_ZYNQMP_H__
>>> #define __FIRMWARE_ZYNQMP_H__
>>>
>>> +#if !IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE)
>>
>> I don't think there is a real need to have this ifdef around.
>> You can just ignore it and keep just below line.
> [Wendy] if ZYNQMP_FIRMWARE is defined, this header doesn't need
> linux/err.h shall we only include linux/err.h when it is required?

Again I have no problem to include it but please remove that #if/#endif
and include it all the time.

Thanks,
Michal