All of lore.kernel.org
 help / color / mirror / Atom feed
* [xinli-intel-fred-public:fred-kvm-v7 44/45] arch/x86/kvm/vmx/vmx.c:2220:42: error: implicit declaration of function 'vmx_read_guest_fred_ssp0'; did you mean 'vmx_read_guest_fred_rsp0'?
@ 2025-08-23 23:05 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-08-23 23:05 UTC (permalink / raw)
  To: Xin3 Li; +Cc: oe-kbuild-all

tree:   https://github.com/xinli-intel/linux-fred-public.git fred-kvm-v7
head:   ba4a099cdfb6456f5fae6fd235ce77659517af0e
commit: ba4a099cdfb6456f5fae6fd235ce77659517af0e [44/45] KVM: VMX: Add support for FRED SSP0 save/restore
config: i386-buildonly-randconfig-001-20250824 (https://download.01.org/0day-ci/archive/20250824/202508240654.Wd2CTESU-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250824/202508240654.Wd2CTESU-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/202508240654.Wd2CTESU-lkp@intel.com/

All errors (new ones prefixed by >>):

   arch/x86/kvm/vmx/vmx.c: In function 'vmx_get_msr':
>> arch/x86/kvm/vmx/vmx.c:2220:42: error: implicit declaration of function 'vmx_read_guest_fred_ssp0'; did you mean 'vmx_read_guest_fred_rsp0'? [-Werror=implicit-function-declaration]
    2220 |                         msr_info->data = vmx_read_guest_fred_ssp0(vmx);
         |                                          ^~~~~~~~~~~~~~~~~~~~~~~~
         |                                          vmx_read_guest_fred_rsp0
   arch/x86/kvm/vmx/vmx.c: In function 'vmx_set_msr':
>> arch/x86/kvm/vmx/vmx.c:2583:25: error: implicit declaration of function 'vmx_write_guest_fred_ssp0'; did you mean 'vmx_read_guest_fred_rsp0'? [-Werror=implicit-function-declaration]
    2583 |                         vmx_write_guest_fred_ssp0(vmx, data);
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~
         |                         vmx_read_guest_fred_rsp0
   cc1: some warnings being treated as errors


vim +2220 arch/x86/kvm/vmx/vmx.c

  2053	
  2054	/*
  2055	 * Reads an msr value (of 'msr_info->index') into 'msr_info->data'.
  2056	 * Returns 0 on success, non-0 otherwise.
  2057	 * Assumes vcpu_load() was already called.
  2058	 */
  2059	int vmx_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
  2060	{
  2061		struct vcpu_vmx *vmx = to_vmx(vcpu);
  2062		struct vmx_uret_msr *msr;
  2063		u32 index;
  2064	
  2065		switch (msr_info->index) {
  2066	#ifdef CONFIG_X86_64
  2067		case MSR_FS_BASE:
  2068			msr_info->data = vmcs_readl(GUEST_FS_BASE);
  2069			break;
  2070		case MSR_GS_BASE:
  2071			msr_info->data = vmcs_readl(GUEST_GS_BASE);
  2072			break;
  2073		case MSR_KERNEL_GS_BASE:
  2074			msr_info->data = vmx_read_guest_kernel_gs_base(vmx);
  2075			break;
  2076		case MSR_IA32_FRED_RSP0:
  2077			msr_info->data = vmx_read_guest_fred_rsp0(vmx);
  2078			break;
  2079		case MSR_IA32_FRED_RSP1 ... MSR_IA32_FRED_CONFIG:
  2080			msr_info->data = vmcs_read64(fred_msr_to_vmcs(msr_info->index));
  2081			break;
  2082	#endif
  2083		case MSR_EFER:
  2084			return kvm_get_msr_common(vcpu, msr_info);
  2085		case MSR_IA32_TSX_CTRL:
  2086			if (!msr_info->host_initiated &&
  2087			    !(vcpu->arch.arch_capabilities & ARCH_CAP_TSX_CTRL_MSR))
  2088				return 1;
  2089			goto find_uret_msr;
  2090		case MSR_IA32_UMWAIT_CONTROL:
  2091			if (!msr_info->host_initiated && !vmx_has_waitpkg(vmx))
  2092				return 1;
  2093	
  2094			msr_info->data = vmx->msr_ia32_umwait_control;
  2095			break;
  2096		case MSR_IA32_SPEC_CTRL:
  2097			if (!msr_info->host_initiated &&
  2098			    !guest_has_spec_ctrl_msr(vcpu))
  2099				return 1;
  2100	
  2101			msr_info->data = to_vmx(vcpu)->spec_ctrl;
  2102			break;
  2103		case MSR_IA32_SYSENTER_CS:
  2104			msr_info->data = vmcs_read32(GUEST_SYSENTER_CS);
  2105			break;
  2106		case MSR_IA32_SYSENTER_EIP:
  2107			msr_info->data = vmcs_readl(GUEST_SYSENTER_EIP);
  2108			break;
  2109		case MSR_IA32_SYSENTER_ESP:
  2110			msr_info->data = vmcs_readl(GUEST_SYSENTER_ESP);
  2111			break;
  2112		case MSR_IA32_BNDCFGS:
  2113			if (!kvm_mpx_supported() ||
  2114			    (!msr_info->host_initiated &&
  2115			     !guest_cpu_cap_has(vcpu, X86_FEATURE_MPX)))
  2116				return 1;
  2117			msr_info->data = vmcs_read64(GUEST_BNDCFGS);
  2118			break;
  2119		case MSR_IA32_MCG_EXT_CTL:
  2120			if (!msr_info->host_initiated &&
  2121			    !(vmx->msr_ia32_feature_control &
  2122			      FEAT_CTL_LMCE_ENABLED))
  2123				return 1;
  2124			msr_info->data = vcpu->arch.mcg_ext_ctl;
  2125			break;
  2126		case MSR_IA32_FEAT_CTL:
  2127			msr_info->data = vmx->msr_ia32_feature_control;
  2128			break;
  2129		case MSR_IA32_SGXLEPUBKEYHASH0 ... MSR_IA32_SGXLEPUBKEYHASH3:
  2130			if (!msr_info->host_initiated &&
  2131			    !guest_cpu_cap_has(vcpu, X86_FEATURE_SGX_LC))
  2132				return 1;
  2133			msr_info->data = to_vmx(vcpu)->msr_ia32_sgxlepubkeyhash
  2134				[msr_info->index - MSR_IA32_SGXLEPUBKEYHASH0];
  2135			break;
  2136		case KVM_FIRST_EMULATED_VMX_MSR ... KVM_LAST_EMULATED_VMX_MSR:
  2137			if (!guest_cpu_cap_has(vcpu, X86_FEATURE_VMX))
  2138				return 1;
  2139			if (vmx_get_vmx_msr(&vmx->nested.msrs, msr_info->index,
  2140					    &msr_info->data))
  2141				return 1;
  2142	#ifdef CONFIG_KVM_HYPERV
  2143			/*
  2144			 * Enlightened VMCS v1 doesn't have certain VMCS fields but
  2145			 * instead of just ignoring the features, different Hyper-V
  2146			 * versions are either trying to use them and fail or do some
  2147			 * sanity checking and refuse to boot. Filter all unsupported
  2148			 * features out.
  2149			 */
  2150			if (!msr_info->host_initiated && guest_cpu_cap_has_evmcs(vcpu))
  2151				nested_evmcs_filter_control_msr(vcpu, msr_info->index,
  2152								&msr_info->data);
  2153	#endif
  2154			break;
  2155		case MSR_IA32_RTIT_CTL:
  2156			if (!vmx_pt_mode_is_host_guest())
  2157				return 1;
  2158			msr_info->data = vmx->pt_desc.guest.ctl;
  2159			break;
  2160		case MSR_IA32_RTIT_STATUS:
  2161			if (!vmx_pt_mode_is_host_guest())
  2162				return 1;
  2163			msr_info->data = vmx->pt_desc.guest.status;
  2164			break;
  2165		case MSR_IA32_RTIT_CR3_MATCH:
  2166			if (!vmx_pt_mode_is_host_guest() ||
  2167				!intel_pt_validate_cap(vmx->pt_desc.caps,
  2168							PT_CAP_cr3_filtering))
  2169				return 1;
  2170			msr_info->data = vmx->pt_desc.guest.cr3_match;
  2171			break;
  2172		case MSR_IA32_RTIT_OUTPUT_BASE:
  2173			if (!vmx_pt_mode_is_host_guest() ||
  2174				(!intel_pt_validate_cap(vmx->pt_desc.caps,
  2175						PT_CAP_topa_output) &&
  2176				 !intel_pt_validate_cap(vmx->pt_desc.caps,
  2177						PT_CAP_single_range_output)))
  2178				return 1;
  2179			msr_info->data = vmx->pt_desc.guest.output_base;
  2180			break;
  2181		case MSR_IA32_RTIT_OUTPUT_MASK:
  2182			if (!vmx_pt_mode_is_host_guest() ||
  2183				(!intel_pt_validate_cap(vmx->pt_desc.caps,
  2184						PT_CAP_topa_output) &&
  2185				 !intel_pt_validate_cap(vmx->pt_desc.caps,
  2186						PT_CAP_single_range_output)))
  2187				return 1;
  2188			msr_info->data = vmx->pt_desc.guest.output_mask;
  2189			break;
  2190		case MSR_IA32_RTIT_ADDR0_A ... MSR_IA32_RTIT_ADDR3_B:
  2191			index = msr_info->index - MSR_IA32_RTIT_ADDR0_A;
  2192			if (!vmx_pt_mode_is_host_guest() ||
  2193			    (index >= 2 * vmx->pt_desc.num_address_ranges))
  2194				return 1;
  2195			if (index % 2)
  2196				msr_info->data = vmx->pt_desc.guest.addr_b[index / 2];
  2197			else
  2198				msr_info->data = vmx->pt_desc.guest.addr_a[index / 2];
  2199			break;
  2200		case MSR_IA32_S_CET:
  2201			msr_info->data = vmcs_readl(GUEST_S_CET);
  2202			break;
  2203		case MSR_KVM_INTERNAL_GUEST_SSP:
  2204			msr_info->data = vmcs_readl(GUEST_SSP);
  2205			break;
  2206		case MSR_IA32_INT_SSP_TAB:
  2207			msr_info->data = vmcs_readl(GUEST_INTR_SSP_TABLE);
  2208			break;
  2209		case MSR_IA32_DEBUGCTLMSR:
  2210			msr_info->data = vmx_guest_debugctl_read();
  2211			break;
  2212		case MSR_IA32_PL0_SSP:
  2213			/*
  2214			 * If kvm_cpu_cap_has(X86_FEATURE_SHSTK) but
  2215			 * !guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK), XSAVES/XRSTORS
  2216			 * cover SSP MSRs.
  2217			 */
  2218			if (!kvm_cpu_cap_has(X86_FEATURE_SHSTK) &&
  2219			    guest_cpu_cap_has(vcpu, X86_FEATURE_FRED)) {
> 2220				msr_info->data = vmx_read_guest_fred_ssp0(vmx);
  2221				break;
  2222			}
  2223			fallthrough;
  2224		default:
  2225		find_uret_msr:
  2226			msr = vmx_find_uret_msr(vmx, msr_info->index);
  2227			if (msr) {
  2228				msr_info->data = msr->data;
  2229				break;
  2230			}
  2231			return kvm_get_msr_common(vcpu, msr_info);
  2232		}
  2233	
  2234		return 0;
  2235	}
  2236	

-- 
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-08-23 23:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-23 23:05 [xinli-intel-fred-public:fred-kvm-v7 44/45] arch/x86/kvm/vmx/vmx.c:2220:42: error: implicit declaration of function 'vmx_read_guest_fred_ssp0'; did you mean 'vmx_read_guest_fred_rsp0'? 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.