Messages in this thread | | | Date | Tue, 19 Apr 2022 09:53:01 +0800 | From | kernel test robot <> | Subject | [mingo-tip:sched/headers 1645/2356] drivers/thermal/intel/intel_hfi.c:401:25: warning: incompatible integer to pointer conversion assigning to 'void *' from 'int' |
| |
tree: git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git sched/headers head: af93551cf39027d176f30b9beafc60a4c130998a commit: 96618ccf069eedafdb527ebc33c48b30b348a406 [1645/2356] headers/deps: mm: Remove the <linux/gfp_api.h> header from <linux/gfp.h> config: x86_64-randconfig-a012-20220418 (https://download.01.org/0day-ci/archive/20220419/202204190947.AY5XKXTY-lkp@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 429cbac0390654f90bba18a41799464adf31a5ec) 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 # https://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git/commit/?id=96618ccf069eedafdb527ebc33c48b30b348a406 git remote add mingo-tip git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git git fetch --no-tags mingo-tip sched/headers git checkout 96618ccf069eedafdb527ebc33c48b30b348a406 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/kernel/ drivers/block/aoe/ drivers/bus/mhi/host/ drivers/gpu/drm/i915/gvt/ drivers/gpu/drm/tiny/ drivers/hwmon/ drivers/iio/dac/ drivers/misc/ drivers/platform/x86/ drivers/power/supply/ drivers/spi/ drivers/thermal/intel/ lib/crypto/ net/mctp/
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/thermal/intel/intel_hfi.c:401:27: error: implicit declaration of function 'alloc_pages_exact' is invalid in C99 [-Werror,-Wimplicit-function-declaration] hfi_instance->hw_table = alloc_pages_exact(hfi_features.nr_table_pages, ^ >> drivers/thermal/intel/intel_hfi.c:401:25: warning: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion] hfi_instance->hw_table = alloc_pages_exact(hfi_features.nr_table_pages, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/thermal/intel/intel_hfi.c:448:2: error: implicit declaration of function 'free_pages_exact' is invalid in C99 [-Werror,-Wimplicit-function-declaration] free_pages_exact(hfi_instance->hw_table, hfi_features.nr_table_pages); ^ drivers/thermal/intel/intel_hfi.c:448:2: note: did you mean 'alloc_pages_exact'? drivers/thermal/intel/intel_hfi.c:401:27: note: 'alloc_pages_exact' declared here hfi_instance->hw_table = alloc_pages_exact(hfi_features.nr_table_pages, ^ 1 warning and 2 errors generated.
vim +401 drivers/thermal/intel/intel_hfi.c
2d74e6319abe27 Ricardo Neri 2022-01-27 343 2d74e6319abe27 Ricardo Neri 2022-01-27 344 /** 2d74e6319abe27 Ricardo Neri 2022-01-27 345 * intel_hfi_online() - Enable HFI on @cpu 2d74e6319abe27 Ricardo Neri 2022-01-27 346 * @cpu: CPU in which the HFI will be enabled 2d74e6319abe27 Ricardo Neri 2022-01-27 347 * 2d74e6319abe27 Ricardo Neri 2022-01-27 348 * Enable the HFI to be used in @cpu. The HFI is enabled at the die/package 2d74e6319abe27 Ricardo Neri 2022-01-27 349 * level. The first CPU in the die/package to come online does the full HFI 2d74e6319abe27 Ricardo Neri 2022-01-27 350 * initialization. Subsequent CPUs will just link themselves to the HFI 2d74e6319abe27 Ricardo Neri 2022-01-27 351 * instance of their die/package. 2d74e6319abe27 Ricardo Neri 2022-01-27 352 * 2d74e6319abe27 Ricardo Neri 2022-01-27 353 * This function is called before enabling the thermal vector in the local APIC 2d74e6319abe27 Ricardo Neri 2022-01-27 354 * in order to ensure that @cpu has an associated HFI instance when it receives 2d74e6319abe27 Ricardo Neri 2022-01-27 355 * an HFI event. 2d74e6319abe27 Ricardo Neri 2022-01-27 356 */ 2d74e6319abe27 Ricardo Neri 2022-01-27 357 void intel_hfi_online(unsigned int cpu) 2d74e6319abe27 Ricardo Neri 2022-01-27 358 { 2d74e6319abe27 Ricardo Neri 2022-01-27 359 struct hfi_instance *hfi_instance; 2d74e6319abe27 Ricardo Neri 2022-01-27 360 struct hfi_cpu_info *info; 2d74e6319abe27 Ricardo Neri 2022-01-27 361 phys_addr_t hw_table_pa; 2d74e6319abe27 Ricardo Neri 2022-01-27 362 u64 msr_val; 2d74e6319abe27 Ricardo Neri 2022-01-27 363 u16 die_id; 2d74e6319abe27 Ricardo Neri 2022-01-27 364 2d74e6319abe27 Ricardo Neri 2022-01-27 365 /* Nothing to do if hfi_instances are missing. */ 2d74e6319abe27 Ricardo Neri 2022-01-27 366 if (!hfi_instances) 2d74e6319abe27 Ricardo Neri 2022-01-27 367 return; 2d74e6319abe27 Ricardo Neri 2022-01-27 368 2d74e6319abe27 Ricardo Neri 2022-01-27 369 /* 2d74e6319abe27 Ricardo Neri 2022-01-27 370 * Link @cpu to the HFI instance of its package/die. It does not 2d74e6319abe27 Ricardo Neri 2022-01-27 371 * matter whether the instance has been initialized. 2d74e6319abe27 Ricardo Neri 2022-01-27 372 */ 2d74e6319abe27 Ricardo Neri 2022-01-27 373 info = &per_cpu(hfi_cpu_info, cpu); 2d74e6319abe27 Ricardo Neri 2022-01-27 374 die_id = topology_logical_die_id(cpu); 2d74e6319abe27 Ricardo Neri 2022-01-27 375 hfi_instance = info->hfi_instance; 2d74e6319abe27 Ricardo Neri 2022-01-27 376 if (!hfi_instance) { 2d74e6319abe27 Ricardo Neri 2022-01-27 377 if (die_id < 0 || die_id >= max_hfi_instances) 2d74e6319abe27 Ricardo Neri 2022-01-27 378 return; 2d74e6319abe27 Ricardo Neri 2022-01-27 379 2d74e6319abe27 Ricardo Neri 2022-01-27 380 hfi_instance = &hfi_instances[die_id]; 2d74e6319abe27 Ricardo Neri 2022-01-27 381 info->hfi_instance = hfi_instance; 2d74e6319abe27 Ricardo Neri 2022-01-27 382 } 2d74e6319abe27 Ricardo Neri 2022-01-27 383 2d74e6319abe27 Ricardo Neri 2022-01-27 384 init_hfi_cpu_index(info); 2d74e6319abe27 Ricardo Neri 2022-01-27 385 2d74e6319abe27 Ricardo Neri 2022-01-27 386 /* 2d74e6319abe27 Ricardo Neri 2022-01-27 387 * Now check if the HFI instance of the package/die of @cpu has been 2d74e6319abe27 Ricardo Neri 2022-01-27 388 * initialized (by checking its header). In such case, all we have to 2d74e6319abe27 Ricardo Neri 2022-01-27 389 * do is to add @cpu to this instance's cpumask. 2d74e6319abe27 Ricardo Neri 2022-01-27 390 */ 2d74e6319abe27 Ricardo Neri 2022-01-27 391 mutex_lock(&hfi_instance_lock); 2d74e6319abe27 Ricardo Neri 2022-01-27 392 if (hfi_instance->hdr) { 2d74e6319abe27 Ricardo Neri 2022-01-27 393 cpumask_set_cpu(cpu, hfi_instance->cpus); 2d74e6319abe27 Ricardo Neri 2022-01-27 394 goto unlock; 2d74e6319abe27 Ricardo Neri 2022-01-27 395 } 2d74e6319abe27 Ricardo Neri 2022-01-27 396 2d74e6319abe27 Ricardo Neri 2022-01-27 397 /* 2d74e6319abe27 Ricardo Neri 2022-01-27 398 * Hardware is programmed with the physical address of the first page 2d74e6319abe27 Ricardo Neri 2022-01-27 399 * frame of the table. Hence, the allocated memory must be page-aligned. 2d74e6319abe27 Ricardo Neri 2022-01-27 400 */ 2d74e6319abe27 Ricardo Neri 2022-01-27 @401 hfi_instance->hw_table = alloc_pages_exact(hfi_features.nr_table_pages, 2d74e6319abe27 Ricardo Neri 2022-01-27 402 GFP_KERNEL | __GFP_ZERO); 2d74e6319abe27 Ricardo Neri 2022-01-27 403 if (!hfi_instance->hw_table) 2d74e6319abe27 Ricardo Neri 2022-01-27 404 goto unlock; 2d74e6319abe27 Ricardo Neri 2022-01-27 405 2d74e6319abe27 Ricardo Neri 2022-01-27 406 hw_table_pa = virt_to_phys(hfi_instance->hw_table); 2d74e6319abe27 Ricardo Neri 2022-01-27 407 2d74e6319abe27 Ricardo Neri 2022-01-27 408 /* 2d74e6319abe27 Ricardo Neri 2022-01-27 409 * Allocate memory to keep a local copy of the table that 2d74e6319abe27 Ricardo Neri 2022-01-27 410 * hardware generates. 2d74e6319abe27 Ricardo Neri 2022-01-27 411 */ 2d74e6319abe27 Ricardo Neri 2022-01-27 412 hfi_instance->local_table = kzalloc(hfi_features.nr_table_pages << PAGE_SHIFT, 2d74e6319abe27 Ricardo Neri 2022-01-27 413 GFP_KERNEL); 2d74e6319abe27 Ricardo Neri 2022-01-27 414 if (!hfi_instance->local_table) 2d74e6319abe27 Ricardo Neri 2022-01-27 415 goto free_hw_table; 2d74e6319abe27 Ricardo Neri 2022-01-27 416 2d74e6319abe27 Ricardo Neri 2022-01-27 417 /* 2d74e6319abe27 Ricardo Neri 2022-01-27 418 * Program the address of the feedback table of this die/package. On 2d74e6319abe27 Ricardo Neri 2022-01-27 419 * some processors, hardware remembers the old address of the HFI table 2d74e6319abe27 Ricardo Neri 2022-01-27 420 * even after having been reprogrammed and re-enabled. Thus, do not free 2d74e6319abe27 Ricardo Neri 2022-01-27 421 * the pages allocated for the table or reprogram the hardware with a 2d74e6319abe27 Ricardo Neri 2022-01-27 422 * new base address. Namely, program the hardware only once. 2d74e6319abe27 Ricardo Neri 2022-01-27 423 */ 2d74e6319abe27 Ricardo Neri 2022-01-27 424 msr_val = hw_table_pa | HW_FEEDBACK_PTR_VALID_BIT; 2d74e6319abe27 Ricardo Neri 2022-01-27 425 wrmsrl(MSR_IA32_HW_FEEDBACK_PTR, msr_val); 2d74e6319abe27 Ricardo Neri 2022-01-27 426 2d74e6319abe27 Ricardo Neri 2022-01-27 427 init_hfi_instance(hfi_instance); 2d74e6319abe27 Ricardo Neri 2022-01-27 428 ab09b0744a9944 Ricardo Neri 2022-01-27 429 INIT_DELAYED_WORK(&hfi_instance->update_work, hfi_update_work_fn); ab09b0744a9944 Ricardo Neri 2022-01-27 430 raw_spin_lock_init(&hfi_instance->table_lock); ab09b0744a9944 Ricardo Neri 2022-01-27 431 raw_spin_lock_init(&hfi_instance->event_lock); ab09b0744a9944 Ricardo Neri 2022-01-27 432 2d74e6319abe27 Ricardo Neri 2022-01-27 433 cpumask_set_cpu(cpu, hfi_instance->cpus); 2d74e6319abe27 Ricardo Neri 2022-01-27 434 ab09b0744a9944 Ricardo Neri 2022-01-27 435 /* ab09b0744a9944 Ricardo Neri 2022-01-27 436 * Enable the hardware feedback interface and never disable it. See ab09b0744a9944 Ricardo Neri 2022-01-27 437 * comment on programming the address of the table. ab09b0744a9944 Ricardo Neri 2022-01-27 438 */ ab09b0744a9944 Ricardo Neri 2022-01-27 439 rdmsrl(MSR_IA32_HW_FEEDBACK_CONFIG, msr_val); ab09b0744a9944 Ricardo Neri 2022-01-27 440 msr_val |= HW_FEEDBACK_CONFIG_HFI_ENABLE_BIT; ab09b0744a9944 Ricardo Neri 2022-01-27 441 wrmsrl(MSR_IA32_HW_FEEDBACK_CONFIG, msr_val); ab09b0744a9944 Ricardo Neri 2022-01-27 442 2d74e6319abe27 Ricardo Neri 2022-01-27 443 unlock: 2d74e6319abe27 Ricardo Neri 2022-01-27 444 mutex_unlock(&hfi_instance_lock); 2d74e6319abe27 Ricardo Neri 2022-01-27 445 return; 2d74e6319abe27 Ricardo Neri 2022-01-27 446 2d74e6319abe27 Ricardo Neri 2022-01-27 447 free_hw_table: 2d74e6319abe27 Ricardo Neri 2022-01-27 448 free_pages_exact(hfi_instance->hw_table, hfi_features.nr_table_pages); 2d74e6319abe27 Ricardo Neri 2022-01-27 449 goto unlock; 2d74e6319abe27 Ricardo Neri 2022-01-27 450 } 2d74e6319abe27 Ricardo Neri 2022-01-27 451
:::::: The code at line 401 was first introduced by commit :::::: 2d74e6319abe278981e79166b6c2d0c3ed39b1ae thermal: intel: hfi: Handle CPU hotplug events
:::::: TO: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> :::::: CC: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-- 0-DAY CI Kernel Test Service https://01.org/lkp
| |