| From foo@baz Tue Aug 14 16:14:56 CEST 2018 |
| From: Andi Kleen <ak@linux.intel.com> |
| Date: Tue, 7 Aug 2018 15:09:36 -0700 |
| Subject: x86/speculation/l1tf: Invert all not present mappings |
| |
| From: Andi Kleen <ak@linux.intel.com> |
| |
| 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/x86/include/asm/pgtable-invert.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- 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. */ |