lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 285/667] x86/mm: Cleanup the control_va_addr_alignment() __setup handler
    Date
    From: Randy Dunlap <rdunlap@infradead.org>

    [ Upstream commit 1ef64b1e89e6d4018da46e08ffc32779a31160c7 ]

    Clean up control_va_addr_alignment():

    a. Make '=' required instead of optional (as documented).
    b. Print a warning if an invalid option value is used.
    c. Return 1 from the __setup handler when an invalid option value is
    used. This prevents the kernel from polluting init's (limited)
    environment space with the entire string.

    Fixes: dfb09f9b7ab0 ("x86, amd: Avoid cache aliasing penalties on AMD family 15h")
    Reported-by: Igor Zhbanov <i.zhbanov@omprussia.ru>
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Link: https://lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru
    Link: https://lore.kernel.org/r/20220315001045.7680-1-rdunlap@infradead.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/x86/kernel/sys_x86_64.c | 7 ++-----
    1 file changed, 2 insertions(+), 5 deletions(-)

    diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
    index 660b78827638..8cc653ffdccd 100644
    --- a/arch/x86/kernel/sys_x86_64.c
    +++ b/arch/x86/kernel/sys_x86_64.c
    @@ -68,9 +68,6 @@ static int __init control_va_addr_alignment(char *str)
    if (*str == 0)
    return 1;

    - if (*str == '=')
    - str++;
    -
    if (!strcmp(str, "32"))
    va_align.flags = ALIGN_VA_32;
    else if (!strcmp(str, "64"))
    @@ -80,11 +77,11 @@ static int __init control_va_addr_alignment(char *str)
    else if (!strcmp(str, "on"))
    va_align.flags = ALIGN_VA_32 | ALIGN_VA_64;
    else
    - return 0;
    + pr_warn("invalid option value: 'align_va_addr=%s'\n", str);

    return 1;
    }
    -__setup("align_va_addr", control_va_addr_alignment);
    +__setup("align_va_addr=", control_va_addr_alignment);

    SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len,
    unsigned long, prot, unsigned long, flags,
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-07 20:59    [W:4.026 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site