All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL v2 0/5] EFI page table isolation
@ 2015-11-14 22:00 ` Matt Fleming
  0 siblings, 0 replies; 29+ messages in thread
From: Matt Fleming @ 2015-11-14 22:00 UTC (permalink / raw)
  To: Ingo Molnar, Thomas Gleixner, H . Peter Anvin
  Cc: Toshi Kani, Matt Fleming, linux-kernel, linux-efi, Andrew Morton,
	Andy Lutomirski, Borislav Petkov, Dave Hansen, Dave Jones,
	Denys Vlasenko, Linus Torvalds, Sai Praneeth Prakhya,
	Stephen Smalley

Folks,

This patch series is a response to the report that the EFI region
mappings trigger warnings when booting with CONFIG_DEBUG_WX enabled.
They allocate a new page table structure and ensure that all the
mappings we require during EFI runtime calls are only setup there.

It turns out that it still makes sense to share some page table
entries with 'swapper_pg_dir', just not the entries where we need to
allow security lax permissions. Sharing entries is useful for memory
hotplug, for example.

When writing this series I discovered a number of bugs in the existing
code that only became apparent when we stopped using 'trampoline_pgd'
which already mapped a bunch of things for us. I've put those bug
fixes at the start of the series. 

Further testing would be very much appreciated as this is a
notoriously funky area of the EFI code.

Changes in v2:

 - Folded PATCH 1 and 2 together because they both fall under the
   umbrella of "making sure cpa->pfn is really a page frame number".

 - Fixed some checkpatch warnings about mixing spaces and tabs and
   made some stylistic changes per Borislav's comments.

 - Moved efi_alloc_page_tables() earlier in __efi_enter_virtual_mode()
   so that we fail early if we can't allocate memory for the page
   tables.

The following changes since commit 2c66e24d75d424919c42288b418d2e593fa818b1:

  x86/efi: Fix kernel panic when CONFIG_DEBUG_VIRTUAL is enabled (2015-10-25 10:22:25 +0000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git tags/efi-next

for you to fetch changes up to 78b112115dd6e01ebeaedde4fb4602d718bfba4b:

  Documentation/x86: Update EFI memory region description (2015-11-14 21:40:02 +0000)

----------------------------------------------------------------
 * Use completely separate page tables for EFI runtime service calls
   so that the security-lax mapping permissions (RWX) do not leak into
   the standard kernel page tables and trigger warnings when
   CONFIG_DEBUG_WX is enabled.

----------------------------------------------------------------
Matt Fleming (5):
      x86/mm/pageattr: Ensure cpa->pfn only contains page frame numbers
      x86/efi: Map RAM into the identity page table for mixed mode
      x86/efi: Hoist page table switching code into efi_call_virt()
      x86/efi: Build our own page table structures
      Documentation/x86: Update EFI memory region description

 Documentation/x86/x86_64/mm.txt     |  12 +--
 arch/x86/include/asm/efi.h          |  26 ++++++
 arch/x86/mm/pageattr.c              |  17 ++--
 arch/x86/platform/efi/efi.c         |  39 +++-----
 arch/x86/platform/efi/efi_32.c      |   5 ++
 arch/x86/platform/efi/efi_64.c      | 174 ++++++++++++++++++++++++++++--------
 arch/x86/platform/efi/efi_stub_64.S |  43 ---------
 7 files changed, 192 insertions(+), 124 deletions(-)

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

end of thread, other threads:[~2015-11-20 12:01 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-14 22:00 [GIT PULL v2 0/5] EFI page table isolation Matt Fleming
2015-11-14 22:00 ` Matt Fleming
2015-11-14 22:00 ` [PATCH v2 1/5] x86/mm/pageattr: Ensure cpa->pfn only contains page frame numbers Matt Fleming
2015-11-14 22:00   ` Matt Fleming
2015-11-16 15:56   ` Dave Hansen
2015-11-16 15:56     ` Dave Hansen
2015-11-17  9:44     ` Matt Fleming
2015-11-17  9:44       ` Matt Fleming
2015-11-16 20:19   ` Thomas Gleixner
2015-11-16 20:19     ` Thomas Gleixner
2015-11-16 21:20     ` Borislav Petkov
2015-11-16 21:48       ` Thomas Gleixner
2015-11-16 21:48         ` Thomas Gleixner
2015-11-17  8:50         ` Thomas Gleixner
2015-11-17  8:50           ` Thomas Gleixner
2015-11-17  9:45     ` Matt Fleming
2015-11-17  9:45       ` Matt Fleming
2015-11-18  8:14       ` Ingo Molnar
2015-11-18  8:14         ` Ingo Molnar
2015-11-20 12:01         ` Matt Fleming
2015-11-20 12:01           ` Matt Fleming
2015-11-14 22:00 ` [PATCH 2/5] x86/efi: Map RAM into the identity page table for mixed mode Matt Fleming
2015-11-14 22:00   ` Matt Fleming
2015-11-14 22:00 ` [PATCH v2 3/5] x86/efi: Hoist page table switching code into efi_call_virt() Matt Fleming
2015-11-14 22:00   ` Matt Fleming
2015-11-14 22:00 ` [PATCH v2 4/5] x86/efi: Build our own page table structures Matt Fleming
2015-11-14 22:00   ` Matt Fleming
2015-11-14 22:00 ` [PATCH 5/5] Documentation/x86: Update EFI memory region description Matt Fleming
2015-11-14 22:00   ` Matt Fleming

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.