| From b09c7934cee94a30ceecd25d89ff79990cd8c997 Mon Sep 17 00:00:00 2001 |
| From: Andi Kleen <ak@linux.intel.com> |
| Date: Tue, 7 Aug 2018 15:09:36 -0700 |
| Subject: [PATCH 19/22] x86/speculation/l1tf: Invert all not present mappings |
| |
| commit f22cc87f6c1f771b57c407555cfefd811cdd9507 upstream |
| |
| For kernel mappings PAGE_PROTNONE is not necessarily set for a non present |
| mapping, but the inversion logic explicitely checks for !PRESENT and |
| PROT_NONE. |
| |
| Remove the PROT_NONE check and make the inversion unconditional for all not |
| present mappings. |
| |
| Signed-off-by: Andi Kleen <ak@linux.intel.com> |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> |
| Signed-off-by: Guenter Roeck <linux@roeck-us.net> |
| --- |
| arch/x86/include/asm/pgtable-invert.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/arch/x86/include/asm/pgtable-invert.h b/arch/x86/include/asm/pgtable-invert.h |
| index 177564187fc0..44b1203ece12 100644 |
| --- a/arch/x86/include/asm/pgtable-invert.h |
| +++ b/arch/x86/include/asm/pgtable-invert.h |
| @@ -6,7 +6,7 @@ |
| |
| static inline bool __pte_needs_invert(u64 val) |
| { |
| - return (val & (_PAGE_PRESENT|_PAGE_PROTNONE)) == _PAGE_PROTNONE; |
| + return !(val & _PAGE_PRESENT); |
| } |
| |
| /* Get a mask to xor with the page table entry to get the correct pfn. */ |
| -- |
| 2.18.0.597.ga71716f1ad-goog |
| |