lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202507241752.gju4meHj-lkp@intel.com>
Date: Thu, 24 Jul 2025 17:11:28 +0800
From: kernel test robot <lkp@...el.com>
To: "Ahmed S. Darwish" <darwi@...utronix.de>,
	Borislav Petkov <bp@...en8.de>, Ingo Molnar <mingo@...hat.com>,
	Dave Hansen <dave.hansen@...ux.intel.com>
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
	Thomas Gleixner <tglx@...utronix.de>,
	Andrew Cooper <andrew.cooper3@...rix.com>,
	Paolo Bonzini <pbonzini@...hat.com>,
	Vitaly Kuznetsov <vkuznets@...hat.com>,
	Sean Christopherson <seanjc@...gle.com>,
	Juergen Gross <jgross@...e.com>,
	Boris Ostrovsky <boris.ostrovsky@...cle.com>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	John Ogness <john.ogness@...utronix.de>, x86@...nel.org,
	kvm@...r.kernel.org, x86-cpuid@...ts.linux.dev,
	LKML <linux-kernel@...r.kernel.org>,
	"Ahmed S. Darwish" <darwi@...utronix.de>
Subject: Re: [PATCH v4 4/4] x86/cpu: <asm/processor.h>: Do not include the
 CPUID API header

Hi Ahmed,

kernel test robot noticed the following build errors:

[auto build test ERROR on 89be9a83ccf1f88522317ce02f854f30d6115c41]

url:    https://github.com/intel-lab-lkp/linux/commits/Ahmed-S-Darwish/x86-cpuid-Remove-transitional-asm-cpuid-h-header/20250724-014828
base:   89be9a83ccf1f88522317ce02f854f30d6115c41
patch link:    https://lore.kernel.org/r/20250723173644.33568-5-darwi%40linutronix.de
patch subject: [PATCH v4 4/4] x86/cpu: <asm/processor.h>: Do not include the CPUID API header
config: x86_64-rhel-9.4-rust (https://download.01.org/0day-ci/archive/20250724/202507241752.gju4meHj-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
rustc: rustc 1.88.0 (6b00bc388 2025-06-23)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250724/202507241752.gju4meHj-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507241752.gju4meHj-lkp@intel.com/

All errors (new ones prefixed by >>):

>> arch/x86/kvm/svm/sev.c:2939:2: error: call to undeclared function 'cpuid'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    2939 |         cpuid(0x8000001f, &eax, &ebx, &ecx, &edx);
         |         ^
   1 error generated.


vim +/cpuid +2939 arch/x86/kvm/svm/sev.c

179a8427fcbffe Ashish Kalra          2025-05-12  2904  
916391a2d1dc22 Tom Lendacky          2020-12-10  2905  void __init sev_hardware_setup(void)
eaf78265a4ab33 Joerg Roedel          2020-03-24  2906  {
7aef27f0b2a8a5 Vipin Sharma          2021-03-29  2907  	unsigned int eax, ebx, ecx, edx, sev_asid_count, sev_es_asid_count;
6f1d5a3513c237 Ashish Kalra          2025-03-24  2908  	struct sev_platform_init_args init_args = {0};
1dfe571c12cf99 Brijesh Singh         2024-05-01  2909  	bool sev_snp_supported = false;
916391a2d1dc22 Tom Lendacky          2020-12-10  2910  	bool sev_es_supported = false;
916391a2d1dc22 Tom Lendacky          2020-12-10  2911  	bool sev_supported = false;
916391a2d1dc22 Tom Lendacky          2020-12-10  2912  
80d0f521d59e08 Sean Christopherson   2023-08-24  2913  	if (!sev_enabled || !npt_enabled || !nrips)
e8126bdaf19400 Sean Christopherson   2021-04-21  2914  		goto out;
e8126bdaf19400 Sean Christopherson   2021-04-21  2915  
c532f2903b69b7 Sean Christopherson   2022-01-20  2916  	/*
c532f2903b69b7 Sean Christopherson   2022-01-20  2917  	 * SEV must obviously be supported in hardware.  Sanity check that the
c532f2903b69b7 Sean Christopherson   2022-01-20  2918  	 * CPU supports decode assists, which is mandatory for SEV guests to
770d6aa2e416fd Sean Christopherson   2023-10-18  2919  	 * support instruction emulation.  Ditto for flushing by ASID, as SEV
770d6aa2e416fd Sean Christopherson   2023-10-18  2920  	 * guests are bound to a single ASID, i.e. KVM can't rotate to a new
770d6aa2e416fd Sean Christopherson   2023-10-18  2921  	 * ASID to effect a TLB flush.
c532f2903b69b7 Sean Christopherson   2022-01-20  2922  	 */
c532f2903b69b7 Sean Christopherson   2022-01-20  2923  	if (!boot_cpu_has(X86_FEATURE_SEV) ||
770d6aa2e416fd Sean Christopherson   2023-10-18  2924  	    WARN_ON_ONCE(!boot_cpu_has(X86_FEATURE_DECODEASSISTS)) ||
770d6aa2e416fd Sean Christopherson   2023-10-18  2925  	    WARN_ON_ONCE(!boot_cpu_has(X86_FEATURE_FLUSHBYASID)))
916391a2d1dc22 Tom Lendacky          2020-12-10  2926  		goto out;
916391a2d1dc22 Tom Lendacky          2020-12-10  2927  
44e70718df4fc2 Sean Christopherson   2025-02-10  2928  	/*
44e70718df4fc2 Sean Christopherson   2025-02-10  2929  	 * The kernel's initcall infrastructure lacks the ability to express
44e70718df4fc2 Sean Christopherson   2025-02-10  2930  	 * dependencies between initcalls, whereas the modules infrastructure
44e70718df4fc2 Sean Christopherson   2025-02-10  2931  	 * automatically handles dependencies via symbol loading.  Ensure the
44e70718df4fc2 Sean Christopherson   2025-02-10  2932  	 * PSP SEV driver is initialized before proceeding if KVM is built-in,
44e70718df4fc2 Sean Christopherson   2025-02-10  2933  	 * as the dependency isn't handled by the initcall infrastructure.
44e70718df4fc2 Sean Christopherson   2025-02-10  2934  	 */
44e70718df4fc2 Sean Christopherson   2025-02-10  2935  	if (IS_BUILTIN(CONFIG_KVM_AMD) && sev_module_init())
44e70718df4fc2 Sean Christopherson   2025-02-10  2936  		goto out;
44e70718df4fc2 Sean Christopherson   2025-02-10  2937  
916391a2d1dc22 Tom Lendacky          2020-12-10  2938  	/* Retrieve SEV CPUID information */
916391a2d1dc22 Tom Lendacky          2020-12-10 @2939  	cpuid(0x8000001f, &eax, &ebx, &ecx, &edx);
916391a2d1dc22 Tom Lendacky          2020-12-10  2940  
1edc14599e06fd Tom Lendacky          2020-12-10  2941  	/* Set encryption bit location for SEV-ES guests */
1edc14599e06fd Tom Lendacky          2020-12-10  2942  	sev_enc_bit = ebx & 0x3f;
1edc14599e06fd Tom Lendacky          2020-12-10  2943  
eaf78265a4ab33 Joerg Roedel          2020-03-24  2944  	/* Maximum number of encrypted guests supported simultaneously */
916391a2d1dc22 Tom Lendacky          2020-12-10  2945  	max_sev_asid = ecx;
8cb756b7bdcc6e Sean Christopherson   2021-04-21  2946  	if (!max_sev_asid)
916391a2d1dc22 Tom Lendacky          2020-12-10  2947  		goto out;
eaf78265a4ab33 Joerg Roedel          2020-03-24  2948  
eaf78265a4ab33 Joerg Roedel          2020-03-24  2949  	/* Minimum ASID value that should be used for SEV guest */
916391a2d1dc22 Tom Lendacky          2020-12-10  2950  	min_sev_asid = edx;
d3d1af85e2c75b Brijesh Singh         2021-04-15  2951  	sev_me_mask = 1UL << (ebx & 0x3f);
eaf78265a4ab33 Joerg Roedel          2020-03-24  2952  
bb2baeb214a71c Mingwei Zhang         2021-08-02  2953  	/*
bb2baeb214a71c Mingwei Zhang         2021-08-02  2954  	 * Initialize SEV ASID bitmaps. Allocate space for ASID 0 in the bitmap,
bb2baeb214a71c Mingwei Zhang         2021-08-02  2955  	 * even though it's never used, so that the bitmap is indexed by the
bb2baeb214a71c Mingwei Zhang         2021-08-02  2956  	 * actual ASID.
bb2baeb214a71c Mingwei Zhang         2021-08-02  2957  	 */
bb2baeb214a71c Mingwei Zhang         2021-08-02  2958  	nr_asids = max_sev_asid + 1;
bb2baeb214a71c Mingwei Zhang         2021-08-02  2959  	sev_asid_bitmap = bitmap_zalloc(nr_asids, GFP_KERNEL);
eaf78265a4ab33 Joerg Roedel          2020-03-24  2960  	if (!sev_asid_bitmap)
916391a2d1dc22 Tom Lendacky          2020-12-10  2961  		goto out;
eaf78265a4ab33 Joerg Roedel          2020-03-24  2962  
bb2baeb214a71c Mingwei Zhang         2021-08-02  2963  	sev_reclaim_asid_bitmap = bitmap_zalloc(nr_asids, GFP_KERNEL);
f31b88b35f90f6 Sean Christopherson   2021-04-21  2964  	if (!sev_reclaim_asid_bitmap) {
f31b88b35f90f6 Sean Christopherson   2021-04-21  2965  		bitmap_free(sev_asid_bitmap);
f31b88b35f90f6 Sean Christopherson   2021-04-21  2966  		sev_asid_bitmap = NULL;
916391a2d1dc22 Tom Lendacky          2020-12-10  2967  		goto out;
f31b88b35f90f6 Sean Christopherson   2021-04-21  2968  	}
eaf78265a4ab33 Joerg Roedel          2020-03-24  2969  
0aa6b90ef9d75b Ashish Kalra          2024-01-31  2970  	if (min_sev_asid <= max_sev_asid) {
7aef27f0b2a8a5 Vipin Sharma          2021-03-29  2971  		sev_asid_count = max_sev_asid - min_sev_asid + 1;
106ed2cad9f7bd Sean Christopherson   2023-06-06  2972  		WARN_ON_ONCE(misc_cg_set_capacity(MISC_CG_RES_SEV, sev_asid_count));
0aa6b90ef9d75b Ashish Kalra          2024-01-31  2973  	}
916391a2d1dc22 Tom Lendacky          2020-12-10  2974  	sev_supported = true;
eaf78265a4ab33 Joerg Roedel          2020-03-24  2975  
916391a2d1dc22 Tom Lendacky          2020-12-10  2976  	/* SEV-ES support requested? */
8d364a0792dd95 Sean Christopherson   2021-04-21  2977  	if (!sev_es_enabled)
916391a2d1dc22 Tom Lendacky          2020-12-10  2978  		goto out;
916391a2d1dc22 Tom Lendacky          2020-12-10  2979  
0c29397ac1fdd6 Sean Christopherson   2022-08-03  2980  	/*
0c29397ac1fdd6 Sean Christopherson   2022-08-03  2981  	 * SEV-ES requires MMIO caching as KVM doesn't have access to the guest
0c29397ac1fdd6 Sean Christopherson   2022-08-03  2982  	 * instruction stream, i.e. can't emulate in response to a #NPF and
0c29397ac1fdd6 Sean Christopherson   2022-08-03  2983  	 * instead relies on #NPF(RSVD) being reflected into the guest as #VC
0c29397ac1fdd6 Sean Christopherson   2022-08-03  2984  	 * (the guest can then do a #VMGEXIT to request MMIO emulation).
0c29397ac1fdd6 Sean Christopherson   2022-08-03  2985  	 */
0c29397ac1fdd6 Sean Christopherson   2022-08-03  2986  	if (!enable_mmio_caching)
0c29397ac1fdd6 Sean Christopherson   2022-08-03  2987  		goto out;
0c29397ac1fdd6 Sean Christopherson   2022-08-03  2988  
916391a2d1dc22 Tom Lendacky          2020-12-10  2989  	/* Does the CPU support SEV-ES? */
916391a2d1dc22 Tom Lendacky          2020-12-10  2990  	if (!boot_cpu_has(X86_FEATURE_SEV_ES))
916391a2d1dc22 Tom Lendacky          2020-12-10  2991  		goto out;
916391a2d1dc22 Tom Lendacky          2020-12-10  2992  
d922056215617e Ravi Bangoria         2024-05-31  2993  	if (!lbrv) {
d922056215617e Ravi Bangoria         2024-05-31  2994  		WARN_ONCE(!boot_cpu_has(X86_FEATURE_LBRV),
d922056215617e Ravi Bangoria         2024-05-31  2995  			  "LBRV must be present for SEV-ES support");
d922056215617e Ravi Bangoria         2024-05-31  2996  		goto out;
d922056215617e Ravi Bangoria         2024-05-31  2997  	}
d922056215617e Ravi Bangoria         2024-05-31  2998  
916391a2d1dc22 Tom Lendacky          2020-12-10  2999  	/* Has the system been allocated ASIDs for SEV-ES? */
916391a2d1dc22 Tom Lendacky          2020-12-10  3000  	if (min_sev_asid == 1)
916391a2d1dc22 Tom Lendacky          2020-12-10  3001  		goto out;
916391a2d1dc22 Tom Lendacky          2020-12-10  3002  
7aef27f0b2a8a5 Vipin Sharma          2021-03-29  3003  	sev_es_asid_count = min_sev_asid - 1;
106ed2cad9f7bd Sean Christopherson   2023-06-06  3004  	WARN_ON_ONCE(misc_cg_set_capacity(MISC_CG_RES_SEV_ES, sev_es_asid_count));
916391a2d1dc22 Tom Lendacky          2020-12-10  3005  	sev_es_supported = true;
1dfe571c12cf99 Brijesh Singh         2024-05-01  3006  	sev_snp_supported = sev_snp_enabled && cc_platform_has(CC_ATTR_HOST_SEV_SNP);
916391a2d1dc22 Tom Lendacky          2020-12-10  3007  
916391a2d1dc22 Tom Lendacky          2020-12-10  3008  out:
179a8427fcbffe Ashish Kalra          2025-05-12  3009  	if (sev_enabled) {
179a8427fcbffe Ashish Kalra          2025-05-12  3010  		init_args.probe = true;
179a8427fcbffe Ashish Kalra          2025-05-12  3011  		if (sev_platform_init(&init_args))
179a8427fcbffe Ashish Kalra          2025-05-12  3012  			sev_supported = sev_es_supported = sev_snp_supported = false;
179a8427fcbffe Ashish Kalra          2025-05-12  3013  		else if (sev_snp_supported)
179a8427fcbffe Ashish Kalra          2025-05-12  3014  			sev_snp_supported = is_sev_snp_initialized();
179a8427fcbffe Ashish Kalra          2025-05-12  3015  	}
179a8427fcbffe Ashish Kalra          2025-05-12  3016  
6d1bc9754b0407 Alexander Mikhalitsyn 2023-05-22  3017  	if (boot_cpu_has(X86_FEATURE_SEV))
6d1bc9754b0407 Alexander Mikhalitsyn 2023-05-22  3018  		pr_info("SEV %s (ASIDs %u - %u)\n",
0aa6b90ef9d75b Ashish Kalra          2024-01-31  3019  			sev_supported ? min_sev_asid <= max_sev_asid ? "enabled" :
0aa6b90ef9d75b Ashish Kalra          2024-01-31  3020  								       "unusable" :
0aa6b90ef9d75b Ashish Kalra          2024-01-31  3021  								       "disabled",
6d1bc9754b0407 Alexander Mikhalitsyn 2023-05-22  3022  			min_sev_asid, max_sev_asid);
6d1bc9754b0407 Alexander Mikhalitsyn 2023-05-22  3023  	if (boot_cpu_has(X86_FEATURE_SEV_ES))
6d1bc9754b0407 Alexander Mikhalitsyn 2023-05-22  3024  		pr_info("SEV-ES %s (ASIDs %u - %u)\n",
800173cf7560e0 Thorsten Blum         2024-12-27  3025  			str_enabled_disabled(sev_es_supported),
6d1bc9754b0407 Alexander Mikhalitsyn 2023-05-22  3026  			min_sev_asid > 1 ? 1 : 0, min_sev_asid - 1);
1dfe571c12cf99 Brijesh Singh         2024-05-01  3027  	if (boot_cpu_has(X86_FEATURE_SEV_SNP))
1dfe571c12cf99 Brijesh Singh         2024-05-01  3028  		pr_info("SEV-SNP %s (ASIDs %u - %u)\n",
800173cf7560e0 Thorsten Blum         2024-12-27  3029  			str_enabled_disabled(sev_snp_supported),
1dfe571c12cf99 Brijesh Singh         2024-05-01  3030  			min_sev_asid > 1 ? 1 : 0, min_sev_asid - 1);
6d1bc9754b0407 Alexander Mikhalitsyn 2023-05-22  3031  
8d364a0792dd95 Sean Christopherson   2021-04-21  3032  	sev_enabled = sev_supported;
8d364a0792dd95 Sean Christopherson   2021-04-21  3033  	sev_es_enabled = sev_es_supported;
1dfe571c12cf99 Brijesh Singh         2024-05-01  3034  	sev_snp_enabled = sev_snp_supported;
1dfe571c12cf99 Brijesh Singh         2024-05-01  3035  
d1f85fbe836e61 Alexey Kardashevskiy  2023-06-15  3036  	if (!sev_es_enabled || !cpu_feature_enabled(X86_FEATURE_DEBUG_SWAP) ||
d1f85fbe836e61 Alexey Kardashevskiy  2023-06-15  3037  	    !cpu_feature_enabled(X86_FEATURE_NO_NESTED_DATA_BP))
d1f85fbe836e61 Alexey Kardashevskiy  2023-06-15  3038  		sev_es_debug_swap_enabled = false;
ac5c48027bacb1 Paolo Bonzini         2024-04-04  3039  
ac5c48027bacb1 Paolo Bonzini         2024-04-04  3040  	sev_supported_vmsa_features = 0;
ac5c48027bacb1 Paolo Bonzini         2024-04-04  3041  	if (sev_es_debug_swap_enabled)
ac5c48027bacb1 Paolo Bonzini         2024-04-04  3042  		sev_supported_vmsa_features |= SVM_SEV_FEAT_DEBUG_SWAP;
eaf78265a4ab33 Joerg Roedel          2020-03-24  3043  }
eaf78265a4ab33 Joerg Roedel          2020-03-24  3044  

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ