All of lore.kernel.org
 help / color / mirror / Atom feed
* [peterz-queue:x86/core 4/6] arch/x86/kernel/cpu/mshyperv.c:431:34: error: 'hv_pg_hypercall' undeclared here (not in a function); did you mean 'hv_do_hypercall'?
@ 2025-04-12 15:52 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-04-12 15:52 UTC (permalink / raw)
  To: Peter Zijlstra; +Cc: oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/core
head:   c08c01c51ede1b79b73fe142e4bc9f7bb9d0ea5e
commit: c8efbca9f0d4d811af848bcec92a9f9ba4b98301 [4/6] x86,hyperv: Clean up hv_do_hypercall()
config: x86_64-buildonly-randconfig-003-20250412 (https://download.01.org/0day-ci/archive/20250412/202504122338.9euRC5VM-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250412/202504122338.9euRC5VM-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504122338.9euRC5VM-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/kernel.h:34,
                    from include/linux/cpumask.h:11,
                    from arch/x86/include/asm/cpumask.h:5,
                    from arch/x86/include/asm/msr.h:11,
                    from arch/x86/include/asm/tsc.h:10,
                    from arch/x86/include/asm/timex.h:6,
                    from include/linux/timex.h:67,
                    from include/linux/time32.h:13,
                    from include/linux/time.h:60,
                    from arch/x86/kernel/cpu/mshyperv.c:10:
>> arch/x86/kernel/cpu/mshyperv.c:431:34: error: 'hv_pg_hypercall' undeclared here (not in a function); did you mean 'hv_do_hypercall'?
     431 | DEFINE_STATIC_CALL(hv_hypercall, hv_pg_hypercall);
         |                                  ^~~~~~~~~~~~~~~
   include/linux/static_call_types.h:39:23: note: in definition of macro 'DECLARE_STATIC_CALL'
      39 |         extern typeof(func) STATIC_CALL_TRAMP(name);
         |                       ^~~~
   arch/x86/kernel/cpu/mshyperv.c:431:1: note: in expansion of macro 'DEFINE_STATIC_CALL'
     431 | DEFINE_STATIC_CALL(hv_hypercall, hv_pg_hypercall);
         | ^~~~~~~~~~~~~~~~~~
   In file included from arch/x86/include/asm/mshyperv.h:9,
                    from arch/x86/kernel/cpu/mshyperv.c:23:
   arch/x86/kernel/cpu/mshyperv.c: In function 'ms_hyperv_init_platform':
>> arch/x86/kernel/cpu/mshyperv.c:495:66: error: 'hv_snp_hypercall' undeclared (first use in this function); did you mean 'hv_do_hypercall'?
     495 |                                 static_call_update(hv_hypercall, hv_snp_hypercall);
         |                                                                  ^~~~~~~~~~~~~~~~
   include/linux/static_call.h:154:49: note: in definition of macro 'static_call_update'
     154 |         typeof(&STATIC_CALL_TRAMP(name)) __F = (func);                  \
         |                                                 ^~~~
   arch/x86/kernel/cpu/mshyperv.c:495:66: note: each undeclared identifier is reported only once for each function it appears in
     495 |                                 static_call_update(hv_hypercall, hv_snp_hypercall);
         |                                                                  ^~~~~~~~~~~~~~~~
   include/linux/static_call.h:154:49: note: in definition of macro 'static_call_update'
     154 |         typeof(&STATIC_CALL_TRAMP(name)) __F = (func);                  \
         |                                                 ^~~~
>> arch/x86/kernel/cpu/mshyperv.c:505:66: error: 'hv_tdx_hypercall' undeclared (first use in this function); did you mean 'hv_do_hypercall'?
     505 |                                 static_call_update(hv_hypercall, hv_tdx_hypercall);
         |                                                                  ^~~~~~~~~~~~~~~~
   include/linux/static_call.h:154:49: note: in definition of macro 'static_call_update'
     154 |         typeof(&STATIC_CALL_TRAMP(name)) __F = (func);                  \
         |                                                 ^~~~


vim +431 arch/x86/kernel/cpu/mshyperv.c

   429	
   430	#ifdef CONFIG_X86_64
 > 431	DEFINE_STATIC_CALL(hv_hypercall, hv_pg_hypercall);
   432	EXPORT_STATIC_CALL_TRAMP_GPL(hv_hypercall);
   433	#endif
   434	
   435	static void __init ms_hyperv_init_platform(void)
   436	{
   437		int hv_max_functions_eax;
   438	
   439	#ifdef CONFIG_PARAVIRT
   440		pv_info.name = "Hyper-V";
   441	#endif
   442	
   443		/*
   444		 * Extract the features and hints
   445		 */
   446		ms_hyperv.features = cpuid_eax(HYPERV_CPUID_FEATURES);
   447		ms_hyperv.priv_high = cpuid_ebx(HYPERV_CPUID_FEATURES);
   448		ms_hyperv.ext_features = cpuid_ecx(HYPERV_CPUID_FEATURES);
   449		ms_hyperv.misc_features = cpuid_edx(HYPERV_CPUID_FEATURES);
   450		ms_hyperv.hints    = cpuid_eax(HYPERV_CPUID_ENLIGHTMENT_INFO);
   451	
   452		hv_max_functions_eax = cpuid_eax(HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS);
   453	
   454		pr_info("Hyper-V: privilege flags low %#x, high %#x, ext %#x, hints %#x, misc %#x\n",
   455			ms_hyperv.features, ms_hyperv.priv_high,
   456			ms_hyperv.ext_features, ms_hyperv.hints,
   457			ms_hyperv.misc_features);
   458	
   459		ms_hyperv.max_vp_index = cpuid_eax(HYPERV_CPUID_IMPLEMENT_LIMITS);
   460		ms_hyperv.max_lp_index = cpuid_ebx(HYPERV_CPUID_IMPLEMENT_LIMITS);
   461	
   462		pr_debug("Hyper-V: max %u virtual processors, %u logical processors\n",
   463			 ms_hyperv.max_vp_index, ms_hyperv.max_lp_index);
   464	
   465		hv_identify_partition_type();
   466	
   467		if (ms_hyperv.hints & HV_X64_HYPERV_NESTED) {
   468			hv_nested = true;
   469			pr_info("Hyper-V: running on a nested hypervisor\n");
   470		}
   471	
   472		if (ms_hyperv.features & HV_ACCESS_FREQUENCY_MSRS &&
   473		    ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
   474			x86_platform.calibrate_tsc = hv_get_tsc_khz;
   475			x86_platform.calibrate_cpu = hv_get_tsc_khz;
   476			setup_force_cpu_cap(X86_FEATURE_TSC_KNOWN_FREQ);
   477		}
   478	
   479		if (ms_hyperv.priv_high & HV_ISOLATION) {
   480			ms_hyperv.isolation_config_a = cpuid_eax(HYPERV_CPUID_ISOLATION_CONFIG);
   481			ms_hyperv.isolation_config_b = cpuid_ebx(HYPERV_CPUID_ISOLATION_CONFIG);
   482	
   483			if (ms_hyperv.shared_gpa_boundary_active)
   484				ms_hyperv.shared_gpa_boundary =
   485					BIT_ULL(ms_hyperv.shared_gpa_boundary_bits);
   486	
   487			pr_info("Hyper-V: Isolation Config: Group A 0x%x, Group B 0x%x\n",
   488				ms_hyperv.isolation_config_a, ms_hyperv.isolation_config_b);
   489	
   490	
   491			if (hv_get_isolation_type() == HV_ISOLATION_TYPE_SNP) {
   492				static_branch_enable(&isolation_type_snp);
   493	#ifdef CONFIG_X86_64
   494				if (!ms_hyperv.paravisor_present)
 > 495					static_call_update(hv_hypercall, hv_snp_hypercall);
   496	#endif
   497			} else if (hv_get_isolation_type() == HV_ISOLATION_TYPE_TDX) {
   498				static_branch_enable(&isolation_type_tdx);
   499	
   500				/* A TDX VM must use x2APIC and doesn't use lazy EOI. */
   501				ms_hyperv.hints &= ~HV_X64_APIC_ACCESS_RECOMMENDED;
   502	
   503				if (!ms_hyperv.paravisor_present) {
   504	#ifdef CONFIG_X86_64
 > 505					static_call_update(hv_hypercall, hv_tdx_hypercall);
   506	#endif
   507					/*
   508					 * Mark the Hyper-V TSC page feature as disabled
   509					 * in a TDX VM without paravisor so that the
   510					 * Invariant TSC, which is a better clocksource
   511					 * anyway, is used instead.
   512					 */
   513					ms_hyperv.features &= ~HV_MSR_REFERENCE_TSC_AVAILABLE;
   514	
   515					/*
   516					 * The Invariant TSC is expected to be available
   517					 * in a TDX VM without paravisor, but if not,
   518					 * print a warning message. The slower Hyper-V MSR-based
   519					 * Ref Counter should end up being the clocksource.
   520					 */
   521					if (!(ms_hyperv.features & HV_ACCESS_TSC_INVARIANT))
   522						pr_warn("Hyper-V: Invariant TSC is unavailable\n");
   523	
   524					/* HV_MSR_CRASH_CTL is unsupported. */
   525					ms_hyperv.misc_features &= ~HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE;
   526	
   527					/* Don't trust Hyper-V's TLB-flushing hypercalls. */
   528					ms_hyperv.hints &= ~HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;
   529	
   530					x86_init.acpi.reduced_hw_early_init = reduced_hw_init;
   531				}
   532			}
   533		}
   534	
   535		if (hv_max_functions_eax >= HYPERV_CPUID_NESTED_FEATURES) {
   536			ms_hyperv.nested_features =
   537				cpuid_eax(HYPERV_CPUID_NESTED_FEATURES);
   538			pr_info("Hyper-V: Nested features: 0x%x\n",
   539				ms_hyperv.nested_features);
   540		}
   541	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

only message in thread, other threads:[~2025-04-12 15:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-12 15:52 [peterz-queue:x86/core 4/6] arch/x86/kernel/cpu/mshyperv.c:431:34: error: 'hv_pg_hypercall' undeclared here (not in a function); did you mean 'hv_do_hypercall'? kernel test robot

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.