lkml.org 
[lkml]   [2018]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] x86/boot/64/clang: Use fixup_pointer() to access '__supported_pte_mask'
    Date
    Similarly to commit 187e91fe5e91
    ("x86/boot/64/clang: Use fixup_pointer() to access 'next_early_pgt'"),
    '__supported_pte_mask' must be also accessed using fixup_pointer() to
    avoid position-dependent relocations.

    Signed-off-by: Alexander Potapenko <glider@google.com>
    Fixes: fb43d6cb91ef ("x86/mm: Do not auto-massage page protections")
    ---
    arch/x86/kernel/head64.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
    index 0c408f8c4ed4..1b36ae4d0035 100644
    --- a/arch/x86/kernel/head64.c
    +++ b/arch/x86/kernel/head64.c
    @@ -113,6 +113,7 @@ unsigned long __head __startup_64(unsigned long physaddr,
    p4dval_t *p4d;
    pudval_t *pud;
    pmdval_t *pmd, pmd_entry;
    + pteval_t *mask_ptr;
    bool la57;
    int i;
    unsigned int *next_pgt_ptr;
    @@ -196,7 +197,8 @@ unsigned long __head __startup_64(unsigned long physaddr,

    pmd_entry = __PAGE_KERNEL_LARGE_EXEC & ~_PAGE_GLOBAL;
    /* Filter out unsupported __PAGE_KERNEL_* bits: */
    - pmd_entry &= __supported_pte_mask;
    + mask_ptr = (pteval_t *)fixup_pointer(&__supported_pte_mask, physaddr);
    + pmd_entry &= *mask_ptr;
    pmd_entry += sme_get_me_mask();
    pmd_entry += physaddr;

    --
    2.17.0.441.gb46fe60e1d-goog
    \
     
     \ /
      Last update: 2018-05-08 14:18    [W:5.387 / U:0.276 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site