Re: [PATCH v2] x86: consider effective protection attributes in W+X check

From: Ingo Molnar
Date: Wed Feb 21 2018 - 11:53:52 EST



* Jan Beulich <JBeulich@xxxxxxxx> wrote:

> Using just the leaf page table entry flags would cause a false warning
> in case _PAGE_RW is clear or _PAGE_NX is set in a higher level entry.
> Hand through both the current entry's flags as well as the accumulated
> effective value (the latter as pgprotval_t instead of pgprot_t, as it's
> not an actual entry's value).
>
> This in particular eliminates the false W+X warning when running under
> Xen, as commit 2cc42bac1c ("x86-64/Xen: eliminate W+X mappings") has to
> make the necessary adjustment in L2 rather than L1 (the reason is
> explained there). I.e. _PAGE_RW is clear there in L1, but _PAGE_NX is
> set in L2.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> Reviewed-by: Juergen Gross <jgross@xxxxxxxx>
> ---
> v2: Re-base onto tip tree. Add Xen related paragraph to description.
> ---
> arch/x86/mm/dump_pagetables.c | 92 ++++++++++++++++++++++++++----------------
> 1 file changed, 57 insertions(+), 35 deletions(-)

There's a build failure with CONFIG_KASAN=y enabled:

arch/x86/mm/dump_pagetables.c: In function âkasan_page_tableâ:
arch/x86/mm/dump_pagetables.c:365:3: error: too few arguments to function ânote_pageâ
arch/x86/mm/dump_pagetables.c:238:13: note: declared here

Thanks,

Ingo