lkml.org 
[lkml]   [2023]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 26/34] x86/fred: no ESPFIX needed when FRED is enabled
    Date
    From: "H. Peter Anvin (Intel)" <hpa@zytor.com>

    Because FRED always restores the full value of %rsp, ESPFIX is
    no longer needed when it's enabled.

    Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
    Tested-by: Shan Kang <shan.kang@intel.com>
    Signed-off-by: Xin Li <xin3.li@intel.com>
    ---
    arch/x86/kernel/espfix_64.c | 8 ++++++++
    1 file changed, 8 insertions(+)

    diff --git a/arch/x86/kernel/espfix_64.c b/arch/x86/kernel/espfix_64.c
    index 16f9814c9be0..48d133a54f45 100644
    --- a/arch/x86/kernel/espfix_64.c
    +++ b/arch/x86/kernel/espfix_64.c
    @@ -106,6 +106,10 @@ void __init init_espfix_bsp(void)
    pgd_t *pgd;
    p4d_t *p4d;

    + /* FRED systems don't need ESPFIX */
    + if (cpu_feature_enabled(X86_FEATURE_FRED))
    + return;
    +
    /* Install the espfix pud into the kernel page directory */
    pgd = &init_top_pgt[pgd_index(ESPFIX_BASE_ADDR)];
    p4d = p4d_alloc(&init_mm, pgd, ESPFIX_BASE_ADDR);
    @@ -129,6 +133,10 @@ void init_espfix_ap(int cpu)
    void *stack_page;
    pteval_t ptemask;

    + /* FRED systems don't need ESPFIX */
    + if (cpu_feature_enabled(X86_FEATURE_FRED))
    + return;
    +
    /* We only have to do this once... */
    if (likely(per_cpu(espfix_stack, cpu)))
    return; /* Already initialized */
    --
    2.34.1
    \
     
     \ /
      Last update: 2023-03-27 00:46    [W:4.037 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site