Re: [PATCH 00/11] Implement generic prot_guest_has() helper function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tom,

On 7/27/21 3:26 PM, Tom Lendacky wrote:
This patch series provides a generic helper function, prot_guest_has(),
to replace the sme_active(), sev_active(), sev_es_active() and
mem_encrypt_active() functions.

It is expected that as new protected virtualization technologies are
added to the kernel, they can all be covered by a single function call
instead of a collection of specific function calls all called from the
same locations.

The powerpc and s390 patches have been compile tested only. Can the
folks copied on this series verify that nothing breaks for them.

With this patch set, select ARCH_HAS_PROTECTED_GUEST and set
CONFIG_AMD_MEM_ENCRYPT=n, creates following error.

ld: arch/x86/mm/ioremap.o: in function `early_memremap_is_setup_data':
arch/x86/mm/ioremap.c:672: undefined reference to `early_memremap_decrypted'

It looks like early_memremap_is_setup_data() is not protected with
appropriate config.



Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Ard Biesheuvel <ardb@xxxxxxxxxx>
Cc: Baoquan He <bhe@xxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx>
Cc: Daniel Vetter <daniel@xxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Dave Young <dyoung@xxxxxxxxxx>
Cc: David Airlie <airlied@xxxxxxxx>
Cc: Heiko Carstens <hca@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Joerg Roedel <joro@xxxxxxxxxx>
Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Cc: Maxime Ripard <mripard@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Thomas Zimmermann <tzimmermann@xxxxxxx>
Cc: Vasily Gorbik <gor@xxxxxxxxxxxxx>
Cc: VMware Graphics <linux-graphics-maintainer@xxxxxxxxxx>
Cc: Will Deacon <will@xxxxxxxxxx>

---

Patches based on:
   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git master
   commit 79e920060fa7 ("Merge branch 'WIP/fixes'")

Tom Lendacky (11):
   mm: Introduce a function to check for virtualization protection
     features
   x86/sev: Add an x86 version of prot_guest_has()
   powerpc/pseries/svm: Add a powerpc version of prot_guest_has()
   x86/sme: Replace occurrences of sme_active() with prot_guest_has()
   x86/sev: Replace occurrences of sev_active() with prot_guest_has()
   x86/sev: Replace occurrences of sev_es_active() with prot_guest_has()
   treewide: Replace the use of mem_encrypt_active() with
     prot_guest_has()
   mm: Remove the now unused mem_encrypt_active() function
   x86/sev: Remove the now unused mem_encrypt_active() function
   powerpc/pseries/svm: Remove the now unused mem_encrypt_active()
     function
   s390/mm: Remove the now unused mem_encrypt_active() function

  arch/Kconfig                               |  3 ++
  arch/powerpc/include/asm/mem_encrypt.h     |  5 --
  arch/powerpc/include/asm/protected_guest.h | 30 +++++++++++
  arch/powerpc/platforms/pseries/Kconfig     |  1 +
  arch/s390/include/asm/mem_encrypt.h        |  2 -
  arch/x86/Kconfig                           |  1 +
  arch/x86/include/asm/kexec.h               |  2 +-
  arch/x86/include/asm/mem_encrypt.h         | 13 +----
  arch/x86/include/asm/protected_guest.h     | 27 ++++++++++
  arch/x86/kernel/crash_dump_64.c            |  4 +-
  arch/x86/kernel/head64.c                   |  4 +-
  arch/x86/kernel/kvm.c                      |  3 +-
  arch/x86/kernel/kvmclock.c                 |  4 +-
  arch/x86/kernel/machine_kexec_64.c         | 19 +++----
  arch/x86/kernel/pci-swiotlb.c              |  9 ++--
  arch/x86/kernel/relocate_kernel_64.S       |  2 +-
  arch/x86/kernel/sev.c                      |  6 +--
  arch/x86/kvm/svm/svm.c                     |  3 +-
  arch/x86/mm/ioremap.c                      | 16 +++---
  arch/x86/mm/mem_encrypt.c                  | 60 +++++++++++++++-------
  arch/x86/mm/mem_encrypt_identity.c         |  3 +-
  arch/x86/mm/pat/set_memory.c               |  3 +-
  arch/x86/platform/efi/efi_64.c             |  9 ++--
  arch/x86/realmode/init.c                   |  8 +--
  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c    |  4 +-
  drivers/gpu/drm/drm_cache.c                |  4 +-
  drivers/gpu/drm/vmwgfx/vmwgfx_drv.c        |  4 +-
  drivers/gpu/drm/vmwgfx/vmwgfx_msg.c        |  6 +--
  drivers/iommu/amd/init.c                   |  7 +--
  drivers/iommu/amd/iommu.c                  |  3 +-
  drivers/iommu/amd/iommu_v2.c               |  3 +-
  drivers/iommu/iommu.c                      |  3 +-
  fs/proc/vmcore.c                           |  6 +--
  include/linux/mem_encrypt.h                |  4 --
  include/linux/protected_guest.h            | 37 +++++++++++++
  kernel/dma/swiotlb.c                       |  4 +-
  36 files changed, 218 insertions(+), 104 deletions(-)
  create mode 100644 arch/powerpc/include/asm/protected_guest.h
  create mode 100644 arch/x86/include/asm/protected_guest.h
  create mode 100644 include/linux/protected_guest.h


--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux