[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202412061152.Zar8cGxV-lkp@intel.com>
Date: Fri, 6 Dec 2024 11:21:47 +0800
From: kernel test robot <lkp@...el.com>
To: Zaid Alali <zaidal@...amperecomputing.com>, rafael@...nel.org,
lenb@...nel.org, james.morse@....com, tony.luck@...el.com,
bp@...en8.de, robert.moore@...el.com, dan.j.williams@...el.com,
Jonathan.Cameron@...wei.com, Benjamin.Cheatham@....com,
Avadhut.Naik@....com, viro@...iv.linux.org.uk, arnd@...db.de,
ira.weiny@...el.com, dave.jiang@...el.com,
sthanneeru.opensrc@...ron.com, linux-acpi@...r.kernel.org,
linux-kernel@...r.kernel.org, acpica-devel@...ts.linux.dev
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev
Subject: Re: [PATCH v2 3/9] ACPI: APEI: EINJ: Fix kernel test robot sparse
warning
Hi Zaid,
kernel test robot noticed the following build warnings:
[auto build test WARNING on rafael-pm/linux-next]
[also build test WARNING on rafael-pm/bleeding-edge linus/master v6.13-rc1 next-20241205]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Zaid-Alali/ACPICA-Update-values-to-hex-to-follow-ACPI-specs/20241206-052420
base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
patch link: https://lore.kernel.org/r/20241205211854.43215-4-zaidal%40os.amperecomputing.com
patch subject: [PATCH v2 3/9] ACPI: APEI: EINJ: Fix kernel test robot sparse warning
config: i386-buildonly-randconfig-005-20241206 (https://download.01.org/0day-ci/archive/20241206/202412061152.Zar8cGxV-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241206/202412061152.Zar8cGxV-lkp@intel.com/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 <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412061152.Zar8cGxV-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/acpi/apei/einj-core.c:23:
In file included from include/linux/mm.h:2223:
include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> drivers/acpi/apei/einj-core.c:338:6: warning: variable 'p' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
338 | if (!r) {
| ^~
drivers/acpi/apei/einj-core.c:436:6: note: uninitialized use occurs here
436 | if (p)
| ^
drivers/acpi/apei/einj-core.c:338:2: note: remove the 'if' if its condition is always false
338 | if (!r) {
| ^~~~~~~~~
339 | pr_err("Can not request [mem %#010llx-%#010llx] for Trigger table\n",
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
340 | (unsigned long long)trigger_paddr,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
341 | (unsigned long long)trigger_paddr +
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
342 | sizeof(*trigger_tab) - 1);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
343 | goto out;
| ~~~~~~~~~
344 | }
| ~
drivers/acpi/apei/einj-core.c:334:17: note: initialize the variable 'p' to silence this warning
334 | void __iomem *p;
| ^
| = NULL
2 warnings generated.
vim +338 drivers/acpi/apei/einj-core.c
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 301
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 302 static struct acpi_generic_address *einj_get_trigger_parameter_region(
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 303 struct acpi_einj_trigger *trigger_tab, u64 param1, u64 param2)
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 304 {
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 305 int i;
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 306 struct acpi_whea_header *entry;
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 307
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 308 entry = (struct acpi_whea_header *)
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 309 ((char *)trigger_tab + sizeof(struct acpi_einj_trigger));
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 310 for (i = 0; i < trigger_tab->entry_count; i++) {
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 311 if (entry->action == ACPI_EINJ_TRIGGER_ERROR &&
1d5d820b8fe83b5 drivers/acpi/apei/einj.c Yazen Ghannam 2017-08-28 312 entry->instruction <= ACPI_EINJ_WRITE_REGISTER_VALUE &&
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 313 entry->register_region.space_id ==
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 314 ACPI_ADR_SPACE_SYSTEM_MEMORY &&
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 315 (entry->register_region.address & param2) == (param1 & param2))
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 316 return &entry->register_region;
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 317 entry++;
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 318 }
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 319
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 320 return NULL;
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 321 }
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 322 /* Execute instructions in trigger error action table */
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 323 static int __einj_error_trigger(u64 trigger_paddr, u32 type,
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 324 u64 param1, u64 param2)
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 325 {
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 326 struct acpi_einj_trigger *trigger_tab = NULL;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 327 struct apei_exec_context trigger_ctx;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 328 struct apei_resources trigger_resources;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 329 struct acpi_whea_header *trigger_entry;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 330 struct resource *r;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 331 u32 table_size;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 332 int rc = -EIO;
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 333 struct acpi_generic_address *trigger_param_region = NULL;
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 334 void __iomem *p;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 335
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 336 r = request_mem_region(trigger_paddr, sizeof(*trigger_tab),
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 337 "APEI EINJ Trigger Table");
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 @338 if (!r) {
b2f740baa421525 drivers/acpi/apei/einj.c Borislav Petkov 2016-05-23 339 pr_err("Can not request [mem %#010llx-%#010llx] for Trigger table\n",
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 340 (unsigned long long)trigger_paddr,
46b91e379f7180b drivers/acpi/apei/einj.c Bjorn Helgaas 2011-12-08 341 (unsigned long long)trigger_paddr +
46b91e379f7180b drivers/acpi/apei/einj.c Bjorn Helgaas 2011-12-08 342 sizeof(*trigger_tab) - 1);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 343 goto out;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 344 }
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 345 p = ioremap_cache(trigger_paddr, sizeof(*trigger_tab));
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 346 if (!p) {
b2f740baa421525 drivers/acpi/apei/einj.c Borislav Petkov 2016-05-23 347 pr_err("Failed to map trigger table!\n");
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 348 goto out_rel_header;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 349 }
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 350 trigger_tab = __io_virt(p);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 351 rc = einj_check_trigger_header(trigger_tab);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 352 if (rc) {
933ca4e323de777 drivers/acpi/apei/einj.c Kefeng Wang 2019-10-18 353 pr_warn(FW_BUG "Invalid trigger error action table.\n");
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 354 goto out_rel_header;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 355 }
4c40aed869a200a drivers/acpi/apei/einj.c Niklas Söderlund 2012-01-09 356
4c40aed869a200a drivers/acpi/apei/einj.c Niklas Söderlund 2012-01-09 357 /* No action structures in the TRIGGER_ERROR table, nothing to do */
4c40aed869a200a drivers/acpi/apei/einj.c Niklas Söderlund 2012-01-09 358 if (!trigger_tab->entry_count)
4c40aed869a200a drivers/acpi/apei/einj.c Niklas Söderlund 2012-01-09 359 goto out_rel_header;
4c40aed869a200a drivers/acpi/apei/einj.c Niklas Söderlund 2012-01-09 360
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 361 rc = -EIO;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 362 table_size = trigger_tab->table_size;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 363 r = request_mem_region(trigger_paddr + sizeof(*trigger_tab),
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 364 table_size - sizeof(*trigger_tab),
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 365 "APEI EINJ Trigger Table");
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 366 if (!r) {
b2f740baa421525 drivers/acpi/apei/einj.c Borislav Petkov 2016-05-23 367 pr_err("Can not request [mem %#010llx-%#010llx] for Trigger Table Entry\n",
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 368 (unsigned long long)trigger_paddr + sizeof(*trigger_tab),
46b91e379f7180b drivers/acpi/apei/einj.c Bjorn Helgaas 2011-12-08 369 (unsigned long long)trigger_paddr + table_size - 1);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 370 goto out_rel_header;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 371 }
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 372 iounmap(p);
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 373 p = ioremap_cache(trigger_paddr, table_size);
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 374 if (!p) {
b2f740baa421525 drivers/acpi/apei/einj.c Borislav Petkov 2016-05-23 375 pr_err("Failed to map trigger table!\n");
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 376 goto out_rel_entry;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 377 }
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 378 trigger_tab = __io_virt(p);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 379 trigger_entry = (struct acpi_whea_header *)
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 380 ((char *)trigger_tab + sizeof(struct acpi_einj_trigger));
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 381 apei_resources_init(&trigger_resources);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 382 apei_exec_ctx_init(&trigger_ctx, einj_ins_type,
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 383 ARRAY_SIZE(einj_ins_type),
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 384 trigger_entry, trigger_tab->entry_count);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 385 rc = apei_exec_collect_resources(&trigger_ctx, &trigger_resources);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 386 if (rc)
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 387 goto out_fini;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 388 rc = apei_resources_sub(&trigger_resources, &einj_resources);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 389 if (rc)
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 390 goto out_fini;
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 391 /*
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 392 * Some firmware will access target address specified in
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 393 * param1 to trigger the error when injecting memory error.
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 394 * This will cause resource conflict with regular memory. So
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 395 * remove it from trigger table resources.
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 396 */
c5a130325f13b21 drivers/acpi/apei/einj.c Chen Gong 2013-06-06 397 if ((param_extension || acpi5) && (type & MEM_ERROR_MASK) && param2) {
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 398 struct apei_resources addr_resources;
37ea9693869627d drivers/acpi/apei/einj.c Jay Lu 2022-12-06 399
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 400 apei_resources_init(&addr_resources);
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 401 trigger_param_region = einj_get_trigger_parameter_region(
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 402 trigger_tab, param1, param2);
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 403 if (trigger_param_region) {
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 404 rc = apei_resources_add(&addr_resources,
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 405 trigger_param_region->address,
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 406 trigger_param_region->bit_width/8, true);
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 407 if (rc)
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 408 goto out_fini;
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 409 rc = apei_resources_sub(&trigger_resources,
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 410 &addr_resources);
b4e008dc53a31cb drivers/acpi/apei/einj.c Xiao, Hui 2011-12-08 411 }
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 412 apei_resources_fini(&addr_resources);
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 413 if (rc)
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 414 goto out_fini;
fdea163d8c17ba0 drivers/acpi/apei/einj.c Huang Ying 2011-12-08 415 }
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 416 rc = apei_resources_request(&trigger_resources, "APEI EINJ Trigger");
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 417 if (rc)
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 418 goto out_fini;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 419 rc = apei_exec_pre_map_gars(&trigger_ctx);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 420 if (rc)
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 421 goto out_release;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 422
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 423 rc = apei_exec_run(&trigger_ctx, ACPI_EINJ_TRIGGER_ERROR);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 424
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 425 apei_exec_post_unmap_gars(&trigger_ctx);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 426 out_release:
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 427 apei_resources_release(&trigger_resources);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 428 out_fini:
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 429 apei_resources_fini(&trigger_resources);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 430 out_rel_entry:
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 431 release_mem_region(trigger_paddr + sizeof(*trigger_tab),
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 432 table_size - sizeof(*trigger_tab));
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 433 out_rel_header:
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 434 release_mem_region(trigger_paddr, sizeof(*trigger_tab));
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 435 out:
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 436 if (p)
37dbc95939d19c3 drivers/acpi/apei/einj-core.c Zaid Alali 2024-12-05 437 iounmap(p);
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 438
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 439 return rc;
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 440 }
e40213450b53157 drivers/acpi/apei/einj.c Huang Ying 2010-05-18 441
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists