[hare-scsi-devel:auth.v15 6/11] drivers/nvme/common/auth.c:59:31: warning: address of array 'dhgroup_map[dhgroup_id].name' will always evaluate to 'true'
From: kernel test robot
Date: Tue Jun 28 2022 - 02:39:16 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git auth.v15
head: 2a3a7d0493841ac5944dc0ba861b53d1c2b28014
commit: e0c48505224ab6f6e86eea90b254ae202ecd0bb6 [6/11] nvme: Implement In-Band authentication
config: riscv-randconfig-c006-20220627 (https://download.01.org/0day-ci/archive/20220628/202206281449.L1Gh7eYz-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 016342e319fd31e41cf5ed16a6140a8ea2de74dd)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git/commit/?id=e0c48505224ab6f6e86eea90b254ae202ecd0bb6
git remote add hare-scsi-devel https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git
git fetch --no-tags hare-scsi-devel auth.v15
git checkout e0c48505224ab6f6e86eea90b254ae202ecd0bb6
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/nvme/common/ drivers/nvme/target/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
>> drivers/nvme/common/auth.c:59:31: warning: address of array 'dhgroup_map[dhgroup_id].name' will always evaluate to 'true' [-Wpointer-bool-conversion]
!dhgroup_map[dhgroup_id].name ||
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
>> drivers/nvme/common/auth.c:69:31: warning: address of array 'dhgroup_map[dhgroup_id].kpp' will always evaluate to 'true' [-Wpointer-bool-conversion]
!dhgroup_map[dhgroup_id].kpp ||
~~~~~~~~~~~~~~~~~~~~~~~~~^~~
>> drivers/nvme/common/auth.c:81:23: warning: address of array 'dhgroup_map[i].name' will always evaluate to 'true' [-Wpointer-bool-conversion]
if (!dhgroup_map[i].name ||
~~~~~~~~~~~~~~~~^~~~
>> drivers/nvme/common/auth.c:117:25: warning: address of array 'hash_map[hmac_id].hmac' will always evaluate to 'true' [-Wpointer-bool-conversion]
!hash_map[hmac_id].hmac ||
~~~~~~~~~~~~~~~~~~~^~~~
>> drivers/nvme/common/auth.c:127:25: warning: address of array 'hash_map[hmac_id].digest' will always evaluate to 'true' [-Wpointer-bool-conversion]
!hash_map[hmac_id].digest ||
~~~~~~~~~~~~~~~~~~~^~~~~~
>> drivers/nvme/common/auth.c:139:20: warning: address of array 'hash_map[i].hmac' will always evaluate to 'true' [-Wpointer-bool-conversion]
if (!hash_map[i].hmac || !strlen(hash_map[i].hmac))
~~~~~~~~~~~~~^~~~
drivers/nvme/common/auth.c:152:25: warning: address of array 'hash_map[hmac_id].hmac' will always evaluate to 'true' [-Wpointer-bool-conversion]
!hash_map[hmac_id].hmac ||
~~~~~~~~~~~~~~~~~~~^~~~
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
error: A dwo section may not contain relocations
fatal error: too many errors emitted, stopping now [-ferror-limit=]
7 warnings and 20 errors generated.
vim +59 drivers/nvme/common/auth.c
55
56 const char *nvme_auth_dhgroup_name(u8 dhgroup_id)
57 {
58 if ((dhgroup_id > ARRAY_SIZE(dhgroup_map)) ||
> 59 !dhgroup_map[dhgroup_id].name ||
60 !strlen(dhgroup_map[dhgroup_id].name))
61 return NULL;
62 return dhgroup_map[dhgroup_id].name;
63 }
64 EXPORT_SYMBOL_GPL(nvme_auth_dhgroup_name);
65
66 const char *nvme_auth_dhgroup_kpp(u8 dhgroup_id)
67 {
68 if ((dhgroup_id > ARRAY_SIZE(dhgroup_map)) ||
> 69 !dhgroup_map[dhgroup_id].kpp ||
70 !strlen(dhgroup_map[dhgroup_id].kpp))
71 return NULL;
72 return dhgroup_map[dhgroup_id].kpp;
73 }
74 EXPORT_SYMBOL_GPL(nvme_auth_dhgroup_kpp);
75
76 u8 nvme_auth_dhgroup_id(const char *dhgroup_name)
77 {
78 int i;
79
80 for (i = 0; i < ARRAY_SIZE(dhgroup_map); i++) {
> 81 if (!dhgroup_map[i].name ||
82 !strlen(dhgroup_map[i].name))
83 continue;
84 if (!strncmp(dhgroup_map[i].name, dhgroup_name,
85 strlen(dhgroup_map[i].name)))
86 return i;
87 }
88 return NVME_AUTH_DHGROUP_INVALID;
89 }
90 EXPORT_SYMBOL_GPL(nvme_auth_dhgroup_id);
91
92 static struct nvme_dhchap_hash_map {
93 int len;
94 const char hmac[15];
95 const char digest[8];
96 } hash_map[] = {
97 [NVME_AUTH_HASH_SHA256] = {
98 .len = 32,
99 .hmac = "hmac(sha256)",
100 .digest = "sha256",
101 },
102 [NVME_AUTH_HASH_SHA384] = {
103 .len = 48,
104 .hmac = "hmac(sha384)",
105 .digest = "sha384",
106 },
107 [NVME_AUTH_HASH_SHA512] = {
108 .len = 64,
109 .hmac = "hmac(sha512)",
110 .digest = "sha512",
111 },
112 };
113
114 const char *nvme_auth_hmac_name(u8 hmac_id)
115 {
116 if ((hmac_id > ARRAY_SIZE(hash_map)) ||
> 117 !hash_map[hmac_id].hmac ||
118 !strlen(hash_map[hmac_id].hmac))
119 return NULL;
120 return hash_map[hmac_id].hmac;
121 }
122 EXPORT_SYMBOL_GPL(nvme_auth_hmac_name);
123
124 const char *nvme_auth_digest_name(u8 hmac_id)
125 {
126 if ((hmac_id > ARRAY_SIZE(hash_map)) ||
> 127 !hash_map[hmac_id].digest ||
128 !strlen(hash_map[hmac_id].digest))
129 return NULL;
130 return hash_map[hmac_id].digest;
131 }
132 EXPORT_SYMBOL_GPL(nvme_auth_digest_name);
133
134 u8 nvme_auth_hmac_id(const char *hmac_name)
135 {
136 int i;
137
138 for (i = 0; i < ARRAY_SIZE(hash_map); i++) {
> 139 if (!hash_map[i].hmac || !strlen(hash_map[i].hmac))
140 continue;
141 if (!strncmp(hash_map[i].hmac, hmac_name,
142 strlen(hash_map[i].hmac)))
143 return i;
144 }
145 return NVME_AUTH_HASH_INVALID;
146 }
147 EXPORT_SYMBOL_GPL(nvme_auth_hmac_id);
148
--
0-DAY CI Kernel Test Service
https://01.org/lkp