1. Oct 19, 2020
  2. Oct 15, 2020
    • Linus Torvalds's avatar
      Merge tag 'x86_seves_for_v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · da9803df
      Linus Torvalds authored
      Pull x86 SEV-ES support from Borislav Petkov:
       "SEV-ES enhances the current guest memory encryption support called SEV
        by also encrypting the guest register state, making the registers
        inaccessible to the hypervisor by en-/decrypting them on world
        switches. Thus, it adds additional protection to Linux guests against
        exfiltration, control flow and rollback attacks.
      
        With SEV-ES, the guest is in full control of what registers the
        hypervisor can access. This is provided by a guest-host exchange
        mechanism based on a new exception vector called VMM Communication
        Exception (#VC), a new instruction called VMGEXIT and a shared
        Guest-Host Communication Block which is a decrypted page shared
        between the guest and the hypervisor.
      
        Intercepts to the hypervisor become #VC exceptions in an SEV-ES guest
        so in order for that exception mechanism to work, the early x86 init
        code needed to be made able to handle exceptions, which, in itself,
        brings a bunch of very nice cleanups and improvements to the early
        boot code like an early page fault handler, allowing for on-demand
        building of the identity mapping. With that, !KASLR configurations do
        not use the EFI page table anymore but switch to a kernel-controlled
        one.
      
        The main part of this series adds the support for that new exchange
        mechanism. The goal has been to keep this as much as possibly separate
        from the core x86 code by concentrating the machinery in two
        SEV-ES-specific files:
      
          arch/x86/kernel/sev-es-shared.c
          arch/x86/kernel/sev-es.c
      
        Other interaction with core x86 code has been kept at minimum and
        behind static keys to minimize the performance impact on !SEV-ES
        setups.
      
        Work by Joerg Roedel and Thomas Lendacky and others"
      
      * tag 'x86_seves_for_v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (73 commits)
        x86/sev-es: Use GHCB accessor for setting the MMIO scratch buffer
        x86/sev-es: Check required CPU features for SEV-ES
        x86/efi: Add GHCB mappings when SEV-ES is active
        x86/sev-es: Handle NMI State
        x86/sev-es: Support CPU offline/online
        x86/head/64: Don't call verify_cpu() on starting APs
        x86/smpboot: Load TSS and getcpu GDT entry before loading IDT
        x86/realmode: Setup AP jump table
        x86/realmode: Add SEV-ES specific trampoline entry point
        x86/vmware: Add VMware-specific handling for VMMCALL under SEV-ES
        x86/kvm: Add KVM-specific VMMCALL handling under SEV-ES
        x86/paravirt: Allow hypervisor-specific VMMCALL handling under SEV-ES
        x86/sev-es: Handle #DB Events
        x86/sev-es: Handle #AC Events
        x86/sev-es: Handle VMMCALL Events
        x86/sev-es: Handle MWAIT/MWAITX Events
        x86/sev-es: Handle MONITOR/MONITORX Events
        x86/sev-es: Handle INVD Events
        x86/sev-es: Handle RDPMC Events
        x86/sev-es: Handle RDTSC(P) Events
        ...
      da9803df
    • Linus Torvalds's avatar
      Merge tag 'objtool-core-2020-10-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6873139e
      Linus Torvalds authored
      Pull objtool updates from Ingo Molnar:
       "Most of the changes are cleanups and reorganization to make the
        objtool code more arch-agnostic. This is in preparation for non-x86
        support.
      
        Other changes:
      
         - KASAN fixes
      
         - Handle unreachable trap after call to noreturn functions better
      
         - Ignore unreachable fake jumps
      
         - Misc smaller fixes & cleanups"
      
      * tag 'objtool-core-2020-10-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        perf build: Allow nested externs to enable BUILD_BUG() usage
        objtool: Allow nested externs to enable BUILD_BUG()
        objtool: Permit __kasan_check_{read,write} under UACCESS
        objtool: Ignore unreachable trap after call to noreturn functions
        objtool: Handle calling non-function symbols in other sections
        objtool: Ignore unreachable fake jumps
        objtool: Remove useless tests before save_reg()
        objtool: Decode unwind hint register depending on archit...
      6873139e
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · d5660df4
      Linus Torvalds authored
      Merge misc updates from Andrew Morton:
       "181 patches.
      
        Subsystems affected by this patch series: kbuild, scripts, ntfs,
        ocfs2, vfs, mm (slab, slub, kmemleak, dax, debug, pagecache, fadvise,
        gup, swap, memremap, memcg, selftests, pagemap, mincore, hmm, dma,
        memory-failure, vmallo and migration)"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (181 commits)
        mm/migrate: remove obsolete comment about device public
        mm/migrate: remove cpages-- in migrate_vma_finalize()
        mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
        memblock: use separate iterators for memory and reserved regions
        memblock: implement for_each_reserved_mem_region() using __next_mem_region()
        memblock: remove unused memblock_mem_size()
        x86/setup: simplify reserve_crashkernel()
        x86/setup: simplify initrd relocation and reservation
        arch, drivers: replace for_each_membock() with for_each_mem_range()
        arch, mm: replace for_each_memblock() with for_each_mem_pfn_range()
        memblock: reduce number of parameters in for_each_mem_range()
        memblock: make memblock_debug and related functionality private
        memblock: make for_each_memblock_type() iterator private
        mircoblaze: drop unneeded NUMA and sparsemem initializations
        riscv: drop unneeded node initialization
        h8300, nds32, openrisc: simplify detection of memory extents
        arm64: numa: simplify dummy_numa_init()
        arm, xtensa: simplify initialization of high memory pages
        dma-contiguous: simplify cma_early_percent_memory()
        KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
        ...
      d5660df4
  3. Oct 14, 2020