From: kernel test robot <lkp@intel.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
linux-kernel@vger.kernel.org
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'
Date: Tue, 19 Apr 2022 09:53:01 +0800 [thread overview]
Message-ID: <202204190947.AY5XKXTY-lkp@intel.com> (raw)
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
reply other threads:[~2022-04-19 1:53 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202204190947.AY5XKXTY-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=mingo@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.