[SRU][Trusty][PATCH v2 0/7] Follow-up fixes for CVE-2018-3620/CVE-2018-3646

Juerg Haefliger juerg.haefliger at canonical.com
Thu Aug 30 12:52:32 UTC 2018

Turns out that the problem with L1TF and NUMA balancing isn't the aliasing of
_PAGE_NUMA and _PAGE_PROTNONE but the following two issues:

1) 3.13 defines NUMA page table operations like pte_mknuma, pmd_mknuma and
   such, that manipulate NUMA hinting PTEs. These need to be protected
   against speculation just like the PROT_NONE PTEs, for example.
   Fix that by adding x86 specific NUMA page table operations.

2) Commit "x86/speculation/l1tf: Protect PROT_NONE PTEs against speculation"
   modified pud_pfn() and pmd_pfn() to do the PFN bits inversion using
   pmd_pfn_mask() and pud_pfn_mask() helpers to only invert the relevant part
   of the PUD/PMD. 3.13 doesn't have these masking helpers and the backport of
   using PTE_PFN_MASK instead was incorrect.
   Fix that by backporting the commits that introduce the mask helpers.

Compile tested all supported architectures. Ran stress and boot tests both
on a physical NUMA machine and a NUMA (and non-NUMA) VM.

Colin also ran some extended tests on real NUMA HW and reported no problems.

Signed-off-by: Juerg Haefliger <juergh at canonical.com>

Cyrill Gorcunov (1):
  mm: x86 pgtable: drop unneeded preprocessor ifdef

Juerg Haefliger (2):
  UBUNTU: SAUCE: x86/speculation/l1tf: Protect NUMA hinting PTEs against
  Revert "UBUNTU: [Config] disable NUMA_BALANCING"

Kirill A. Shutemov (1):
  x86/mm: Fix regression with huge pages on PAE

Toshi Kani (3):
  x86/asm: Move PUD_PAGE macros to page_types.h
  x86/asm: Add pud/pmd mask interfaces to handle large PAT bit
  x86/asm: Fix pud/pmd interfaces to handle large PAT bit

 arch/x86/boot/boot.h                      |  1 -
 arch/x86/boot/video-mode.c                |  2 +
 arch/x86/boot/video.c                     |  2 +
 arch/x86/include/asm/page_64_types.h      |  3 -
 arch/x86/include/asm/page_types.h         |  4 +-
 arch/x86/include/asm/pgtable-2level.h     | 10 ----
 arch/x86/include/asm/pgtable.h            | 69 +++++++++++++++++++++--
 arch/x86/include/asm/pgtable_64.h         | 21 +++++--
 arch/x86/include/asm/pgtable_types.h      | 34 +++++++++--
 arch/x86/include/asm/x86_init.h           |  1 -
 debian.master/config/config.common.ubuntu |  4 +-
 11 files changed, 119 insertions(+), 32 deletions(-)


More information about the kernel-team mailing list