diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2023-04-25 10:48:08 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2023-04-25 10:48:08 -0700 | 
| commit | bc1bb2a49bae915107fd58705edb1e32db92c635 (patch) | |
| tree | 2b517448e60c76160452349ea14766ae309dfba0 /init | |
| parent | c42b59bfaa0091833b6758be772c54ec7183daa5 (diff) | |
| parent | 812b0597fb4043240724e4c7bed7ba1fe15c0e3f (diff) | |
Merge tag 'x86_sev_for_v6.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 SEV updates from Borislav Petkov:
 - Add the necessary glue so that the kernel can run as a confidential
   SEV-SNP vTOM guest on Hyper-V. A vTOM guest basically splits the
   address space in two parts: encrypted and unencrypted. The use case
   being running unmodified guests on the Hyper-V confidential computing
   hypervisor
 - Double-buffer messages between the guest and the hardware PSP device
   so that no partial buffers are copied back'n'forth and thus potential
   message integrity and leak attacks are possible
 - Name the return value the sev-guest driver returns when the hw PSP
   device hasn't been called, explicitly
 - Cleanups
* tag 'x86_sev_for_v6.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/hyperv: Change vTOM handling to use standard coco mechanisms
  init: Call mem_encrypt_init() after Hyper-V hypercall init is done
  x86/mm: Handle decryption/re-encryption of bss_decrypted consistently
  Drivers: hv: Explicitly request decrypted in vmap_pfn() calls
  x86/hyperv: Reorder code to facilitate future work
  x86/ioremap: Add hypervisor callback for private MMIO mapping in coco VM
  x86/sev: Change snp_guest_issue_request()'s fw_err argument
  virt/coco/sev-guest: Double-buffer messages
  crypto: ccp: Get rid of __sev_platform_init_locked()'s local function pointer
  crypto: ccp - Name -1 return value as SEV_RET_NO_FW_CALL
Diffstat (limited to 'init')
| -rw-r--r-- | init/main.c | 19 | 
1 files changed, 11 insertions, 8 deletions
| diff --git a/init/main.c b/init/main.c index 123f50eb362b..c62f0c8811d7 100644 --- a/init/main.c +++ b/init/main.c @@ -1092,14 +1092,6 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void)  	 */  	locking_selftest(); -	/* -	 * This needs to be called before any devices perform DMA -	 * operations that might use the SWIOTLB bounce buffers. It will -	 * mark the bounce buffers as decrypted so that their usage will -	 * not cause "plain-text" data to be decrypted when accessed. -	 */ -	mem_encrypt_init(); -  #ifdef CONFIG_BLK_DEV_INITRD  	if (initrd_start && !initrd_below_start_ok &&  	    page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) { @@ -1116,6 +1108,17 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void)  		late_time_init();  	sched_clock_init();  	calibrate_delay(); + +	/* +	 * This needs to be called before any devices perform DMA +	 * operations that might use the SWIOTLB bounce buffers. It will +	 * mark the bounce buffers as decrypted so that their usage will +	 * not cause "plain-text" data to be decrypted when accessed. It +	 * must be called after late_time_init() so that Hyper-V x86/x64 +	 * hypercalls work when the SWIOTLB bounce buffers are decrypted. +	 */ +	mem_encrypt_init(); +  	pid_idr_init();  	anon_vma_init();  #ifdef CONFIG_X86 | 
