All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/9] Control Flow Enforcement - Part (2)
@ 2018-06-07 14:36 ` Yu-cheng Yu
  0 siblings, 0 replies; 68+ messages in thread
From: Yu-cheng Yu @ 2018-06-07 14:36 UTC (permalink / raw)
  To: linux-kernel, linux-doc, linux-mm, linux-arch, x86,
	H. Peter Anvin, Thomas Gleixner, Ingo Molnar, H.J. Lu,
	Vedvyas Shanbhogue, Ravi V. Shankar, Dave Hansen,
	Andy Lutomirski, Jonathan Corbet, Oleg Nesterov, Arnd Bergmann,
	Mike Kravetz
  Cc: Yu-cheng Yu

Summary of changes:

  Shadow stack kernel config option;
  Control protection exception; and
  Shadow stack memory management.

The shadow stack PTE needs to be read-only and dirty.  Changes
are made to:

  Use the read-only and hardware dirty combination exclusively
  for shadow stack;

  Use a PTE spare bit to indicate other PTE dirty conditions;

  Shadow stack page fault handling.

Yu-cheng Yu (9):
  x86/cet: Control protection exception handler
  x86/cet: Add Kconfig option for user-mode shadow stack
  mm: Introduce VM_SHSTK for shadow stack memory
  x86/mm: Change _PAGE_DIRTY to _PAGE_DIRTY_HW
  x86/mm: Introduce _PAGE_DIRTY_SW
  x86/mm: Introduce ptep_set_wrprotect_flush and related functions
  x86/mm: Shadow stack page fault error checking
  x86/cet: Handle shadow stack page fault
  x86/cet: Handle THP/HugeTLB shadow stack page copying

 arch/x86/Kconfig                     |  24 ++++++
 arch/x86/entry/entry_32.S            |   5 ++
 arch/x86/entry/entry_64.S            |   2 +-
 arch/x86/include/asm/pgtable.h       | 149 ++++++++++++++++++++++++++++++-----
 arch/x86/include/asm/pgtable_types.h |  31 +++++---
 arch/x86/include/asm/traps.h         |   5 ++
 arch/x86/kernel/idt.c                |   1 +
 arch/x86/kernel/relocate_kernel_64.S |   2 +-
 arch/x86/kernel/traps.c              |  61 ++++++++++++++
 arch/x86/kvm/vmx.c                   |   2 +-
 arch/x86/mm/fault.c                  |  11 +++
 include/asm-generic/pgtable.h        |  38 +++++++++
 include/linux/mm.h                   |   8 ++
 mm/huge_memory.c                     |  10 ++-
 mm/hugetlb.c                         |   2 +-
 mm/internal.h                        |   8 ++
 mm/memory.c                          |  32 +++++++-
 17 files changed, 353 insertions(+), 38 deletions(-)

-- 
2.15.1

^ permalink raw reply	[flat|nested] 68+ messages in thread

end of thread, other threads:[~2018-06-08 14:13 UTC | newest]

Thread overview: 68+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-07 14:36 [PATCH 0/9] Control Flow Enforcement - Part (2) Yu-cheng Yu
2018-06-07 14:36 ` Yu-cheng Yu
2018-06-07 14:36 ` [PATCH 1/9] x86/cet: Control protection exception handler Yu-cheng Yu
2018-06-07 14:36   ` Yu-cheng Yu
2018-06-07 15:46   ` Andy Lutomirski
2018-06-07 15:46     ` Andy Lutomirski
2018-06-07 16:23     ` Yu-cheng Yu
2018-06-07 16:23       ` Yu-cheng Yu
2018-06-08  4:17   ` kbuild test robot
2018-06-08  4:17     ` kbuild test robot
2018-06-08  4:17     ` kbuild test robot
2018-06-08  4:18   ` kbuild test robot
2018-06-08  4:18     ` kbuild test robot
2018-06-08  4:18     ` kbuild test robot
2018-06-07 14:36 ` [PATCH 2/9] x86/cet: Add Kconfig option for user-mode shadow stack Yu-cheng Yu
2018-06-07 14:36   ` Yu-cheng Yu
2018-06-07 15:47   ` Andy Lutomirski
2018-06-07 15:47     ` Andy Lutomirski
2018-06-07 15:58     ` Yu-cheng Yu
2018-06-07 15:58       ` Yu-cheng Yu
2018-06-07 16:28       ` Andy Lutomirski
2018-06-07 16:28         ` Andy Lutomirski
2018-06-07 14:36 ` [PATCH 3/9] mm: Introduce VM_SHSTK for shadow stack memory Yu-cheng Yu
2018-06-07 14:36   ` Yu-cheng Yu
2018-06-07 14:37 ` [PATCH 4/9] x86/mm: Change _PAGE_DIRTY to _PAGE_DIRTY_HW Yu-cheng Yu
2018-06-07 14:37   ` Yu-cheng Yu
2018-06-08  3:53   ` kbuild test robot
2018-06-08  3:53     ` kbuild test robot
2018-06-08  3:53     ` kbuild test robot
2018-06-07 14:37 ` [PATCH 5/9] x86/mm: Introduce _PAGE_DIRTY_SW Yu-cheng Yu
2018-06-07 14:37   ` Yu-cheng Yu
2018-06-08  5:15   ` kbuild test robot
2018-06-08  5:15     ` kbuild test robot
2018-06-08  5:15     ` kbuild test robot
2018-06-07 14:37 ` [PATCH 6/9] x86/mm: Introduce ptep_set_wrprotect_flush and related functions Yu-cheng Yu
2018-06-07 14:37   ` Yu-cheng Yu
2018-06-07 16:24   ` Andy Lutomirski
2018-06-07 16:24     ` Andy Lutomirski
2018-06-07 18:21     ` Dave Hansen
2018-06-07 18:21       ` Dave Hansen
2018-06-07 18:24       ` Andy Lutomirski
2018-06-07 18:24         ` Andy Lutomirski
2018-06-07 20:29     ` Dave Hansen
2018-06-07 20:29       ` Dave Hansen
2018-06-07 20:36       ` Yu-cheng Yu
2018-06-07 20:36         ` Yu-cheng Yu
2018-06-08  0:59       ` Andy Lutomirski
2018-06-08  0:59         ` Andy Lutomirski
2018-06-08  1:20         ` Dave Hansen
2018-06-08  1:20           ` Dave Hansen
2018-06-08  4:43   ` kbuild test robot
2018-06-08  4:43     ` kbuild test robot
2018-06-08  4:43     ` kbuild test robot
2018-06-08 14:13   ` kbuild test robot
2018-06-08 14:13     ` kbuild test robot
2018-06-08 14:13     ` kbuild test robot
2018-06-07 14:37 ` [PATCH 7/9] x86/mm: Shadow stack page fault error checking Yu-cheng Yu
2018-06-07 14:37   ` Yu-cheng Yu
2018-06-07 16:26   ` Andy Lutomirski
2018-06-07 16:26     ` Andy Lutomirski
2018-06-07 16:46     ` Yu-cheng Yu
2018-06-07 16:46       ` Yu-cheng Yu
2018-06-07 16:56     ` Dave Hansen
2018-06-07 16:56       ` Dave Hansen
2018-06-07 14:37 ` [PATCH 8/9] x86/cet: Handle shadow stack page fault Yu-cheng Yu
2018-06-07 14:37   ` Yu-cheng Yu
2018-06-07 14:37 ` [PATCH 9/9] x86/cet: Handle THP/HugeTLB shadow stack page copying Yu-cheng Yu
2018-06-07 14:37   ` Yu-cheng Yu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.