tree:
https://gitlab.freedesktop.org/agd5f/linux.git s0ix-8
head: 050ed943b1107b59b68db42e0c50586ea5055ce8
commit: 026d186e4592c1ee9c1cb44295912d0294508725 [207/212] ACPI / idle: override and
update c-state latency when not conformance with s0ix
config: i386-randconfig-m021-20210413 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
drivers/acpi/processor_idle.c:435 acpi_processor_power_verify() error: uninitialized
symbol 'latency2'.
drivers/acpi/processor_idle.c:435 acpi_processor_power_verify() error: uninitialized
symbol 'latency3'.
Old smatch warnings:
drivers/acpi/processor_idle.c:77 set_max_cstate() warn: argument 3 to %ld specifier is
cast from pointer
vim +/latency2 +435 drivers/acpi/processor_idle.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 395 static int
acpi_processor_power_verify(struct acpi_processor *pr)
^1da177e4c3f41 Linus Torvalds 2005-04-16 396 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 397 unsigned int i;
^1da177e4c3f41 Linus Torvalds 2005-04-16 398 unsigned int working = 0;
026d186e4592c1 Prike.Liang 2021-02-26 399 u32 latency2, latency3;
^^^^^^^^^^^^^^^^^^^^^^
6eb0a0fd059598 Venkatesh Pallipadi 2006-01-11 400
169a0abbe32813 Thomas Gleixner 2007-02-16 401 pr->power.timer_broadcast_on_state
= INT_MAX;
6eb0a0fd059598 Venkatesh Pallipadi 2006-01-11 402
a0bf284bfedd6d Len Brown 2009-05-15 403 for (i = 1; i <
ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 404 struct acpi_processor_cx *cx =
&pr->power.states[i];
^1da177e4c3f41 Linus Torvalds 2005-04-16 405
^1da177e4c3f41 Linus Torvalds 2005-04-16 406 switch (cx->type) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 407 case ACPI_STATE_C1:
^1da177e4c3f41 Linus Torvalds 2005-04-16 408 cx->valid = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 409 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 410
^1da177e4c3f41 Linus Torvalds 2005-04-16 411 case ACPI_STATE_C2:
d22edd293ff3f1 Len Brown 2010-01-19 412 if (!cx->address)
d22edd293ff3f1 Len Brown 2010-01-19 413 break;
d22edd293ff3f1 Len Brown 2010-01-19 414 cx->valid = 1;
026d186e4592c1 Prike.Liang 2021-02-26 415 latency2 = cx->latency;
^^^^^^^^^^^^^^^^^^^^^^
^1da177e4c3f41 Linus Torvalds 2005-04-16 416 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 417
^1da177e4c3f41 Linus Torvalds 2005-04-16 418 case ACPI_STATE_C3:
026d186e4592c1 Prike.Liang 2021-02-26 419 latency3 = cx->latency;
^^^^^^^^^^^^^^^^^^^^^^^
^1da177e4c3f41 Linus Torvalds 2005-04-16 420 acpi_processor_power_verify_c3(pr,
cx);
^1da177e4c3f41 Linus Torvalds 2005-04-16 421 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 422 }
7e275cc4e8e20f Len Brown 2009-05-15 423 if (!cx->valid)
7e275cc4e8e20f Len Brown 2009-05-15 424 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 425
7e275cc4e8e20f Len Brown 2009-05-15 426 lapic_timer_check_state(i, pr, cx);
7e275cc4e8e20f Len Brown 2009-05-15 427 tsc_check_state(cx->type);
^1da177e4c3f41 Linus Torvalds 2005-04-16 428 working++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 429 }
bd6633476922b7 Andi Kleen 2006-03-25 430
026d186e4592c1 Prike.Liang 2021-02-26 431 /* Some AMD BIOSes mistakenly have
higher C2 latencies than C3 latencies.
026d186e4592c1 Prike.Liang 2021-02-26 432 * In order to properly support S0ix,
the platform needs to not skip C states.
026d186e4592c1 Prike.Liang 2021-02-26 433 * Correct the latencies here.
026d186e4592c1 Prike.Liang 2021-02-26 434 */
026d186e4592c1 Prike.Liang 2021-02-26 @435 if (acpi_processor_vendor_amd()
&& (latency2 >= latency3)) {
Probably if you know a lot about AMD and ACPI specs then you can
determine that these are initialized, but static checkers only see the
code.
026d186e4592c1 Prike.Liang 2021-02-26 436 pr->power.states[2].latency =
18;
026d186e4592c1 Prike.Liang 2021-02-26 437 pr->power.states[3].latency =
350;
026d186e4592c1 Prike.Liang 2021-02-26 438 }
026d186e4592c1 Prike.Liang 2021-02-26 439
918aae42aa9b61 Hidetoshi Seto 2009-12-14 440 lapic_timer_propagate_broadcast(pr);
^1da177e4c3f41 Linus Torvalds 2005-04-16 441
^1da177e4c3f41 Linus Torvalds 2005-04-16 442 return (working);
^1da177e4c3f41 Linus Torvalds 2005-04-16 443 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org