tree:
https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git bleeding-edge
head: 98745c58a5f77fbdf1d602b5241f4eca2072d4df
commit: ae26accf539b4fef8febb60d67d345fed00df834 [184/195] cpuidle: Make drivers
initialize polling state
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 6.2.0
reproduce:
wget
https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout ae26accf539b4fef8febb60d67d345fed00df834
# save the attached .config to linux build tree
make.cross ARCH=ia64
All errors (new ones prefixed by >>):
drivers//acpi/processor_idle.c: In function 'acpi_processor_setup_cstates':
> drivers//acpi/processor_idle.c:854:3: error: implicit declaration
of function 'cpuidle_poll_state_init' [-Werror=implicit-function-declaration]
cpuidle_poll_state_init(drv);
^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/cpuidle_poll_state_init +854 drivers//acpi/processor_idle.c
842
843 static int acpi_processor_setup_cstates(struct acpi_processor *pr)
844 {
845 int i, count;
846 struct acpi_processor_cx *cx;
847 struct cpuidle_state *state;
848 struct cpuidle_driver *drv = &acpi_idle_driver;
849
850 if (max_cstate == 0)
851 max_cstate = 1;
852
853 if (IS_ENABLED(CONFIG_ARCH_HAS_CPU_RELAX)) {
854 cpuidle_poll_state_init(drv);
855 count = 1;
856 } else {
857 count = 0;
858 }
859
860 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) {
861 cx = &pr->power.states[i];
862
863 if (!cx->valid)
864 continue;
865
866 state = &drv->states[count];
867 snprintf(state->name, CPUIDLE_NAME_LEN, "C%d", i);
868 strlcpy(state->desc, cx->desc, CPUIDLE_DESC_LEN);
869 state->exit_latency = cx->latency;
870 state->target_residency = cx->latency * latency_factor;
871 state->enter = acpi_idle_enter;
872
873 state->flags = 0;
874 if (cx->type == ACPI_STATE_C1 || cx->type == ACPI_STATE_C2) {
875 state->enter_dead = acpi_idle_play_dead;
876 drv->safe_state_index = count;
877 }
878 /*
879 * Halt-induced C1 is not good for ->enter_freeze, because it
880 * re-enables interrupts on exit. Moreover, C1 is generally not
881 * particularly interesting from the suspend-to-idle angle, so
882 * avoid C1 and the situations in which we may need to fall back
883 * to it altogether.
884 */
885 if (cx->type != ACPI_STATE_C1 && !acpi_idle_fallback_to_c1(pr))
886 state->enter_freeze = acpi_idle_enter_freeze;
887
888 count++;
889 if (count == CPUIDLE_STATE_MAX)
890 break;
891 }
892
893 drv->state_count = count;
894
895 if (!count)
896 return -EINVAL;
897
898 return 0;
899 }
900
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation