linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [pm:intel_idle+acpi 4/10] drivers/acpi/acpi_processor.c:831: undefined reference to `acpi_processor_ffh_cstate_probe'
@ 2019-12-16 10:26 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2019-12-16 10:26 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: kbuild-all, linux-acpi, devel, linux-pm

[-- Attachment #1: Type: text/plain, Size: 4561 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git intel_idle+acpi
head:   dcedc03145600b929a32acb85b212131b079bc46
commit: 0300cf31f061e6287810c894337f29df2e200e2d [4/10] ACPI: processor: Export acpi_processor_evaluate_cst()
config: x86_64-randconfig-s0-20191216 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.2-10+deb8u1) 4.9.2
reproduce:
        git checkout 0300cf31f061e6287810c894337f29df2e200e2d
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   ld: drivers/acpi/acpi_processor.o: in function `acpi_processor_evaluate_cst':
>> drivers/acpi/acpi_processor.c:831: undefined reference to `acpi_processor_ffh_cstate_probe'

vim +831 drivers/acpi/acpi_processor.c

   732	
   733	/**
   734	 * acpi_processor_evaluate_cst - Evaluate the processor _CST control method.
   735	 * @handle: ACPI handle of the processor object containing the _CST.
   736	 * @cpu: The numeric ID of the target CPU.
   737	 * @info: Object write the C-states information into.
   738	 *
   739	 * Extract the C-state information for the given CPU from the output of the _CST
   740	 * control method under the corresponding ACPI processor object (or processor
   741	 * device object) and populate @info with it.
   742	 *
   743	 * If any ACPI_ADR_SPACE_FIXED_HARDWARE C-states are found, invoke
   744	 * acpi_processor_ffh_cstate_probe() to verify them and update the
   745	 * cpu_cstate_entry data for @cpu.
   746	 */
   747	int acpi_processor_evaluate_cst(acpi_handle handle, u32 cpu,
   748					struct acpi_processor_power *info)
   749	{
   750		struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
   751		union acpi_object *cst;
   752		acpi_status status;
   753		u64 count;
   754		int last_index = 0;
   755		int i, ret = 0;
   756	
   757		status = acpi_evaluate_object(handle, "_CST", NULL, &buffer);
   758		if (ACPI_FAILURE(status)) {
   759			acpi_handle_debug(handle, "No _CST\n");
   760			return -ENODEV;
   761		}
   762	
   763		cst = buffer.pointer;
   764	
   765		/* There must be at least 2 elements. */
   766		if (!cst || cst->type != ACPI_TYPE_PACKAGE || cst->package.count < 2) {
   767			acpi_handle_warn(handle, "Invalid _CST output\n");
   768			ret = -EFAULT;
   769			goto end;
   770		}
   771	
   772		count = cst->package.elements[0].integer.value;
   773	
   774		/* Validate the number of C-states. */
   775		if (count < 1 || count != cst->package.count - 1) {
   776			acpi_handle_warn(handle, "Inconsistent _CST data\n");
   777			ret = -EFAULT;
   778			goto end;
   779		}
   780	
   781		for (i = 1; i <= count; i++) {
   782			union acpi_object *element;
   783			union acpi_object *obj;
   784			struct acpi_power_register *reg;
   785			struct acpi_processor_cx cx;
   786	
   787			/*
   788			 * If there is not enough space for all C-states, skip the
   789			 * excess ones and log a warning.
   790			 */
   791			if (last_index >= ACPI_PROCESSOR_MAX_POWER - 1) {
   792				acpi_handle_warn(handle,
   793						 "No room for more idle states (limit: %d)\n",
   794						 ACPI_PROCESSOR_MAX_POWER - 1);
   795				break;
   796			}
   797	
   798			memset(&cx, 0, sizeof(cx));
   799	
   800			element = &cst->package.elements[i];
   801			if (element->type != ACPI_TYPE_PACKAGE)
   802				continue;
   803	
   804			if (element->package.count != 4)
   805				continue;
   806	
   807			obj = &element->package.elements[0];
   808	
   809			if (obj->type != ACPI_TYPE_BUFFER)
   810				continue;
   811	
   812			reg = (struct acpi_power_register *)obj->buffer.pointer;
   813	
   814			obj = &element->package.elements[1];
   815			if (obj->type != ACPI_TYPE_INTEGER)
   816				continue;
   817	
   818			cx.type = obj->integer.value;
   819			/*
   820			 * There are known cases in which the _CST output does not
   821			 * contain C1, so if the type of the first state found is not
   822			 * C1, leave an empty slot for C1 to be filled in later.
   823			 */
   824			if (i == 1 && cx.type != ACPI_STATE_C1)
   825				last_index = 1;
   826	
   827			cx.address = reg->address;
   828			cx.index = last_index + 1;
   829	
   830			if (reg->space_id == ACPI_ADR_SPACE_FIXED_HARDWARE) {
 > 831				if (!acpi_processor_ffh_cstate_probe(cpu, &cx, reg)) {

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 35042 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-12-16 10:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-16 10:26 [pm:intel_idle+acpi 4/10] drivers/acpi/acpi_processor.c:831: undefined reference to `acpi_processor_ffh_cstate_probe' kbuild test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).