lkml.org 
[lkml]   [2022]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 0780/1126] kgdboc: fix return value of __setup handler
    Date
    From: Randy Dunlap <rdunlap@infradead.org>

    [ Upstream commit ab818c7aa7544bf8d2dd4bdf68878b17a02eb332 ]

    __setup() handlers should return 1 to obsolete_checksetup() in
    init/main.c to indicate that the boot option has been handled.
    A return of 0 causes the boot option/value to be listed as an Unknown
    kernel parameter and added to init's (limited) environment strings.
    So return 1 from kgdboc_option_setup().

    Unknown kernel command line parameters "BOOT_IMAGE=/boot/bzImage-517rc7
    kgdboc=kbd kgdbts=", will be passed to user space.

    Run /sbin/init as init process
    with arguments:
    /sbin/init
    with environment:
    HOME=/
    TERM=linux
    BOOT_IMAGE=/boot/bzImage-517rc7
    kgdboc=kbd
    kgdbts=

    Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru
    Fixes: 1bd54d851f50 ("kgdboc: Passing ekgdboc to command line causes panic")
    Fixes: f2d937f3bf00 ("consoles: polling support, kgdboc")
    Cc: He Zhe <zhe.he@windriver.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Jiri Slaby <jirislaby@kernel.org>
    Cc: kgdb-bugreport@lists.sourceforge.net
    Cc: Jason Wessel <jason.wessel@windriver.com>
    Cc: Daniel Thompson <daniel.thompson@linaro.org>
    Cc: Douglas Anderson <dianders@chromium.org>
    Cc: linux-serial@vger.kernel.org
    Reported-by: Igor Zhbanov <i.zhbanov@omprussia.ru>
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Link: https://lore.kernel.org/r/20220309033018.17936-1-rdunlap@infradead.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/tty/serial/kgdboc.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c
    index 49d0c7f2b29b..79b7db8580e0 100644
    --- a/drivers/tty/serial/kgdboc.c
    +++ b/drivers/tty/serial/kgdboc.c
    @@ -403,16 +403,16 @@ static int kgdboc_option_setup(char *opt)
    {
    if (!opt) {
    pr_err("config string not provided\n");
    - return -EINVAL;
    + return 1;
    }

    if (strlen(opt) >= MAX_CONFIG_LEN) {
    pr_err("config string too long\n");
    - return -ENOSPC;
    + return 1;
    }
    strcpy(config, opt);

    - return 0;
    + return 1;
    }

    __setup("kgdboc=", kgdboc_option_setup);
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-04-05 13:56    [W:2.932 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site