[RFC PATCH] x86/mm: Mask out unsupported bit when it set noexec=off

From: zhong jiang
Date: Mon Nov 11 2019 - 04:58:09 EST


Commit 510bb96fe5b3 ("x86/mm: Prevent bogus warnings with "noexec=off"")
use __supported_pte_mask to replace __default_kernel_pte_mask to mask
out the unsupported bits. It works when the command line set noexec=off.

It also seems to works to use __supported_pte_mask instead in native_set_fixmap.

Signed-off-by: zhong jiang <zhongjiang@xxxxxxxxxx>
---
arch/x86/mm/pgtable.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index 7bd2c3a..13933b9 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -647,7 +647,7 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
phys_addr_t phys, pgprot_t flags)
{
/* Sanitize 'prot' against any unsupported bits: */
- pgprot_val(flags) &= __default_kernel_pte_mask;
+ pgprot_val(flags) &= __supported_pte_mask;

__native_set_fixmap(idx, pfn_pte(phys >> PAGE_SHIFT, flags));
}
--
1.7.12.4