2023-11-19 09:14:37

by kernel test robot

[permalink] [raw]
Subject: drivers/firmware/qcom/qcom_scm.c:1652:34: warning: unused variable 'qcom_scm_qseecom_allowlist'

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 037266a5f7239ead1530266f7d7af153d2a867fa
commit: bdac188ec3c71800dd8419620224ee74ef37732a firmware: qcom: move Qualcomm code into its own directory
date: 4 weeks ago
config: s390-randconfig-002-20231119 (https://download.01.org/0day-ci/archive/20231119/[email protected]/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231119/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

In file included from drivers/firmware/qcom/qcom_scm.c:10:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:78:
include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
547 | val = __raw_readb(PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
560 | val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
| ~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:37:59: note: expanded from macro '__le16_to_cpu'
37 | #define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
| ^
include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16'
102 | #define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
| ^
In file included from drivers/firmware/qcom/qcom_scm.c:10:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:78:
include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
573 | val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
| ~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:35:59: note: expanded from macro '__le32_to_cpu'
35 | #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
| ^
include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
In file included from drivers/firmware/qcom/qcom_scm.c:10:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:78:
include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
584 | __raw_writeb(value, PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
594 | __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
604 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
692 | readsb(PCI_IOBASE + addr, buffer, count);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
700 | readsw(PCI_IOBASE + addr, buffer, count);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
708 | readsl(PCI_IOBASE + addr, buffer, count);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
717 | writesb(PCI_IOBASE + addr, buffer, count);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
726 | writesw(PCI_IOBASE + addr, buffer, count);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
735 | writesl(PCI_IOBASE + addr, buffer, count);
| ~~~~~~~~~~ ^
>> drivers/firmware/qcom/qcom_scm.c:1652:34: warning: unused variable 'qcom_scm_qseecom_allowlist' [-Wunused-const-variable]
1652 | static const struct of_device_id qcom_scm_qseecom_allowlist[] = {
| ^
13 warnings generated.


vim +/qcom_scm_qseecom_allowlist +1652 drivers/firmware/qcom/qcom_scm.c

00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1647
00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1648 /*
00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1649 * We do not yet support re-entrant calls via the qseecom interface. To prevent
00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1650 + any potential issues with this, only allow validated machines for now.
00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1651 */
00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 @1652 static const struct of_device_id qcom_scm_qseecom_allowlist[] = {
00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1653 { .compatible = "lenovo,thinkpad-x13s", },
00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1654 { }
00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1655 };
00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1656

:::::: The code at line 1652 was first introduced by commit
:::::: 00b1248606ba3979ccae30ed11df8cdc1a84245a firmware: qcom_scm: Add support for Qualcomm Secure Execution Environment SCM interface

:::::: TO: Maximilian Luz <[email protected]>
:::::: CC: Bjorn Andersson <[email protected]>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


2023-11-20 18:20:07

by Maximilian Luz

[permalink] [raw]
Subject: Re: drivers/firmware/qcom/qcom_scm.c:1652:34: warning: unused variable 'qcom_scm_qseecom_allowlist'



On 11/19/23 10:13, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 037266a5f7239ead1530266f7d7af153d2a867fa
> commit: bdac188ec3c71800dd8419620224ee74ef37732a firmware: qcom: move Qualcomm code into its own directory
> date: 4 weeks ago
> config: s390-randconfig-002-20231119 (https://download.01.org/0day-ci/archive/20231119/[email protected]/config)
> compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231119/[email protected]/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <[email protected]>
> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
>
> All warnings (new ones prefixed by >>):

[...]

>>> drivers/firmware/qcom/qcom_scm.c:1652:34: warning: unused variable 'qcom_scm_qseecom_allowlist' [-Wunused-const-variable]
> 1652 | static const struct of_device_id qcom_scm_qseecom_allowlist[] = {
> | ^

Any ideas why this is supposedly unused? It should be accessed through
qcom_scm_qseecom_init() and qcom_scm_qseecom_machine_is_allowed().
Especially if CONFIG_QCOM_QSEECOM=y.

> 13 warnings generated.
>
>
> vim +/qcom_scm_qseecom_allowlist +1652 drivers/firmware/qcom/qcom_scm.c
>
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1647
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1648 /*
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1649 * We do not yet support re-entrant calls via the qseecom interface. To prevent
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1650 + any potential issues with this, only allow validated machines for now.
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1651 */
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 @1652 static const struct of_device_id qcom_scm_qseecom_allowlist[] = {
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1653 { .compatible = "lenovo,thinkpad-x13s", },
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1654 { }
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1655 };
> 00b1248606ba39 drivers/firmware/qcom_scm.c Maximilian Luz 2023-08-27 1656
>
> :::::: The code at line 1652 was first introduced by commit
> :::::: 00b1248606ba3979ccae30ed11df8cdc1a84245a firmware: qcom_scm: Add support for Qualcomm Secure Execution Environment SCM interface
>
> :::::: TO: Maximilian Luz <[email protected]>
> :::::: CC: Bjorn Andersson <[email protected]>
>

Regards
Max

2023-11-20 18:53:09

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: drivers/firmware/qcom/qcom_scm.c:1652:34: warning: unused variable 'qcom_scm_qseecom_allowlist'

On 20/11/2023 19:19, Maximilian Luz wrote:
>
>
> On 11/19/23 10:13, kernel test robot wrote:
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head: 037266a5f7239ead1530266f7d7af153d2a867fa
>> commit: bdac188ec3c71800dd8419620224ee74ef37732a firmware: qcom: move Qualcomm code into its own directory
>> date: 4 weeks ago
>> config: s390-randconfig-002-20231119 (https://download.01.org/0day-ci/archive/20231119/[email protected]/config)
>> compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231119/[email protected]/reproduce)
>>
>> If you fix the issue in a separate patch/commit (i.e. not just a new version of
>> the same patch/commit), kindly add following tags
>> | Reported-by: kernel test robot <[email protected]>
>> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
>>
>> All warnings (new ones prefixed by >>):
>
> [...]
>
>>>> drivers/firmware/qcom/qcom_scm.c:1652:34: warning: unused variable 'qcom_scm_qseecom_allowlist' [-Wunused-const-variable]
>> 1652 | static const struct of_device_id qcom_scm_qseecom_allowlist[] = {
>> | ^
>
> Any ideas why this is supposedly unused? It should be accessed through
> qcom_scm_qseecom_init() and qcom_scm_qseecom_machine_is_allowed().
> Especially if CONFIG_QCOM_QSEECOM=y.

And in other cases? The bot reports specific failure on specific config.
You have the config for this arch attached, so you can investigate.

Anyway, short look at the code indeed tells it is unused. It's not
referenced anywhere except of_match_node(). I can fix this.

Best regards,
Krzysztof

2023-11-20 19:38:10

by Maximilian Luz

[permalink] [raw]
Subject: Re: drivers/firmware/qcom/qcom_scm.c:1652:34: warning: unused variable 'qcom_scm_qseecom_allowlist'

On 11/20/23 19:51, Krzysztof Kozlowski wrote:
> On 20/11/2023 19:19, Maximilian Luz wrote:
>>
>>
>> On 11/19/23 10:13, kernel test robot wrote:
>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>> head: 037266a5f7239ead1530266f7d7af153d2a867fa
>>> commit: bdac188ec3c71800dd8419620224ee74ef37732a firmware: qcom: move Qualcomm code into its own directory
>>> date: 4 weeks ago
>>> config: s390-randconfig-002-20231119 (https://download.01.org/0day-ci/archive/20231119/[email protected]/config)
>>> compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
>>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231119/[email protected]/reproduce)
>>>
>>> If you fix the issue in a separate patch/commit (i.e. not just a new version of
>>> the same patch/commit), kindly add following tags
>>> | Reported-by: kernel test robot <[email protected]>
>>> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
>>>
>>> All warnings (new ones prefixed by >>):
>>
>> [...]
>>
>>>>> drivers/firmware/qcom/qcom_scm.c:1652:34: warning: unused variable 'qcom_scm_qseecom_allowlist' [-Wunused-const-variable]
>>> 1652 | static const struct of_device_id qcom_scm_qseecom_allowlist[] = {
>>> | ^
>>
>> Any ideas why this is supposedly unused? It should be accessed through
>> qcom_scm_qseecom_init() and qcom_scm_qseecom_machine_is_allowed().
>> Especially if CONFIG_QCOM_QSEECOM=y.
>
> And in other cases? The bot reports specific failure on specific config.
> You have the config for this arch attached, so you can investigate.

Ah I see now. It's because of_match_node() is defined as macro if !OF
and not as function. I had assumed it's a regular (potentially empty)
function in either case, sorry.

> Anyway, short look at the code indeed tells it is unused. It's not
> referenced anywhere except of_match_node(). I can fix this.

Thanks for the fix.

Best regards,
Max