[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1a829062-5dca-82f2-0497-f9cbe6468f37@amazon.com>
Date: Thu, 6 Aug 2020 08:22:15 +0300
From: "Paraschiv, Andra-Irina" <andraprs@...zon.com>
To: linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v6 15/18] nitro_enclaves: Add Makefile for the Nitro
Enclaves driver
On 05/08/2020 17:23, kernel test robot wrote:
>
> Hi Andra,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on linux/master]
> [also build test ERROR on linus/master v5.8 next-20200805]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch]
>
> url: https://github.com/0day-ci/linux/commits/Andra-Paraschiv/Add-support-for-Nitro-Enclaves/20200805-171942
> base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git bcf876870b95592b52519ed4aafcf9d95999bc9c
> config: arm64-allyesconfig (attached as .config)
> compiler: aarch64-linux-gcc (GCC) 9.3.0
> 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
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64
Removed, for now, the dependency on ARM64 arch. x86 is currently
supported, with Arm to come afterwards.
Thanks,
Andra
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@...el.com>
>
> All errors (new ones prefixed by >>):
>
> drivers/virt/nitro_enclaves/ne_misc_dev.c: In function 'ne_setup_cpu_pool':
>>> drivers/virt/nitro_enclaves/ne_misc_dev.c:245:46: error: 'smp_num_siblings' undeclared (first use in this function); did you mean 'cpu_sibling'?
> 245 | ne_cpu_pool.avail_cores_size = nr_cpu_ids / smp_num_siblings;
> | ^~~~~~~~~~~~~~~~
> | cpu_sibling
> drivers/virt/nitro_enclaves/ne_misc_dev.c:245:46: note: each undeclared identifier is reported only once for each function it appears in
> drivers/virt/nitro_enclaves/ne_misc_dev.c: In function 'ne_enclave_ioctl':
> drivers/virt/nitro_enclaves/ne_misc_dev.c:928:54: error: 'smp_num_siblings' undeclared (first use in this function)
> 928 | if (vcpu_id >= (ne_enclave->avail_cpu_cores_size * smp_num_siblings)) {
> | ^~~~~~~~~~~~~~~~
>
> vim +245 drivers/virt/nitro_enclaves/ne_misc_dev.c
>
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 130
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 131 /**
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 132 * ne_setup_cpu_pool() - Set the NE CPU pool after handling sanity checks such
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 133 * as not sharing CPU cores with the primary / parent VM
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 134 * or not using CPU 0, which should remain available for
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 135 * the primary / parent VM. Offline the CPUs from the
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 136 * pool after the checks passed.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 137 * @ne_cpu_list: The CPU list used for setting NE CPU pool.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 138 *
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 139 * Context: Process context.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 140 * Return:
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 141 * * 0 on success.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 142 * * Negative return value on failure.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 143 */
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 144 static int ne_setup_cpu_pool(const char *ne_cpu_list)
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 145 {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 146 int core_id = -1;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 147 unsigned int cpu = 0;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 148 cpumask_var_t cpu_pool = NULL;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 149 unsigned int cpu_sibling = 0;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 150 unsigned int i = 0;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 151 int numa_node = -1;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 152 int rc = -EINVAL;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 153
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 154 if (!ne_cpu_list)
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 155 return 0;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 156
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 157 if (!zalloc_cpumask_var(&cpu_pool, GFP_KERNEL))
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 158 return -ENOMEM;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 159
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 160 mutex_lock(&ne_cpu_pool.mutex);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 161
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 162 rc = cpulist_parse(ne_cpu_list, cpu_pool);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 163 if (rc < 0) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 164 pr_err("%s: Error in cpulist parse [rc=%d]\n", ne_misc_dev.name, rc);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 165
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 166 goto free_pool_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 167 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 168
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 169 cpu = cpumask_any(cpu_pool);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 170 if (cpu >= nr_cpu_ids) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 171 pr_err("%s: No CPUs available in CPU pool\n", ne_misc_dev.name);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 172
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 173 rc = -EINVAL;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 174
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 175 goto free_pool_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 176 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 177
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 178 /*
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 179 * Check if the CPUs from the NE CPU pool are from the same NUMA node.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 180 */
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 181 for_each_cpu(cpu, cpu_pool) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 182 if (numa_node < 0) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 183 numa_node = cpu_to_node(cpu);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 184 if (numa_node < 0) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 185 pr_err("%s: Invalid NUMA node %d\n",
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 186 ne_misc_dev.name, numa_node);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 187
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 188 rc = -EINVAL;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 189
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 190 goto free_pool_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 191 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 192 } else {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 193 if (numa_node != cpu_to_node(cpu)) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 194 pr_err("%s: CPUs with different NUMA nodes\n",
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 195 ne_misc_dev.name);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 196
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 197 rc = -EINVAL;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 198
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 199 goto free_pool_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 200 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 201 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 202 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 203
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 204 /*
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 205 * Check if CPU 0 and its siblings are included in the provided CPU pool
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 206 * They should remain available for the primary / parent VM.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 207 */
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 208 if (cpumask_test_cpu(0, cpu_pool)) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 209 pr_err("%s: CPU 0 has to remain available\n", ne_misc_dev.name);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 210
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 211 rc = -EINVAL;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 212
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 213 goto free_pool_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 214 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 215
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 216 for_each_cpu(cpu_sibling, topology_sibling_cpumask(0)) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 217 if (cpumask_test_cpu(cpu_sibling, cpu_pool)) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 218 pr_err("%s: CPU sibling %d for CPU 0 is in CPU pool\n",
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 219 ne_misc_dev.name, cpu_sibling);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 220
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 221 rc = -EINVAL;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 222
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 223 goto free_pool_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 224 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 225 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 226
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 227 /*
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 228 * Check if CPU siblings are included in the provided CPU pool. The
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 229 * expectation is that CPU cores are made available in the CPU pool for
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 230 * enclaves.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 231 */
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 232 for_each_cpu(cpu, cpu_pool) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 233 for_each_cpu(cpu_sibling, topology_sibling_cpumask(cpu)) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 234 if (!cpumask_test_cpu(cpu_sibling, cpu_pool)) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 235 pr_err("%s: CPU %d is not in CPU pool\n",
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 236 ne_misc_dev.name, cpu_sibling);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 237
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 238 rc = -EINVAL;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 239
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 240 goto free_pool_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 241 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 242 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 243 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 244
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 @245 ne_cpu_pool.avail_cores_size = nr_cpu_ids / smp_num_siblings;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 246
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 247 ne_cpu_pool.avail_cores = kcalloc(ne_cpu_pool.avail_cores_size,
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 248 sizeof(*ne_cpu_pool.avail_cores),
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 249 GFP_KERNEL);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 250 if (!ne_cpu_pool.avail_cores) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 251 rc = -ENOMEM;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 252
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 253 goto free_pool_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 254 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 255
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 256 for (i = 0; i < ne_cpu_pool.avail_cores_size; i++)
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 257 if (!zalloc_cpumask_var(&ne_cpu_pool.avail_cores[i], GFP_KERNEL)) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 258 rc = -ENOMEM;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 259
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 260 goto free_cores_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 261 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 262
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 263 /* Split the NE CPU pool in CPU cores. */
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 264 for_each_cpu(cpu, cpu_pool) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 265 core_id = topology_core_id(cpu);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 266 if (core_id < 0 || core_id >= ne_cpu_pool.avail_cores_size) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 267 pr_err("%s: Invalid core id %d\n",
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 268 ne_misc_dev.name, core_id);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 269
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 270 rc = -EINVAL;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 271
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 272 goto clear_cpumask;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 273 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 274
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 275 cpumask_set_cpu(cpu, ne_cpu_pool.avail_cores[core_id]);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 276 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 277
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 278 /*
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 279 * CPUs that are given to enclave(s) should not be considered online
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 280 * by Linux anymore, as the hypervisor will degrade them to floating.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 281 * The physical CPUs (full cores) are carved out of the primary / parent
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 282 * VM and given to the enclave VM. The same number of vCPUs would run
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 283 * on less pCPUs for the primary / parent VM.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 284 *
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 285 * We offline them here, to not degrade performance and expose correct
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 286 * topology to Linux and user space.
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 287 */
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 288 for_each_cpu(cpu, cpu_pool) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 289 rc = remove_cpu(cpu);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 290 if (rc != 0) {
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 291 pr_err("%s: CPU %d is not offlined [rc=%d]\n",
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 292 ne_misc_dev.name, cpu, rc);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 293
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 294 goto online_cpus;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 295 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 296 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 297
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 298 free_cpumask_var(cpu_pool);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 299
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 300 ne_cpu_pool.numa_node = numa_node;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 301
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 302 mutex_unlock(&ne_cpu_pool.mutex);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 303
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 304 return 0;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 305
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 306 online_cpus:
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 307 for_each_cpu(cpu, cpu_pool)
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 308 add_cpu(cpu);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 309 clear_cpumask:
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 310 for (i = 0; i < ne_cpu_pool.avail_cores_size; i++)
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 311 cpumask_clear(ne_cpu_pool.avail_cores[i]);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 312 free_cores_cpumask:
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 313 for (i = 0; i < ne_cpu_pool.avail_cores_size; i++)
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 314 free_cpumask_var(ne_cpu_pool.avail_cores[i]);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 315 kfree(ne_cpu_pool.avail_cores);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 316 ne_cpu_pool.avail_cores_size = 0;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 317 free_pool_cpumask:
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 318 free_cpumask_var(cpu_pool);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 319 mutex_unlock(&ne_cpu_pool.mutex);
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 320
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 321 return rc;
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 322 }
> 7d5c9a7dfa51e60 Andra Paraschiv 2020-08-05 323
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.
Powered by blists - more mailing lists