[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6c52882c-c189-4a67-b8c0-0963ba856659@quicinc.com>
Date: Mon, 4 Dec 2023 16:41:19 +0530
From: Jaskaran Singh <quic_jasksing@...cinc.com>
To: Daniel Walker <danielwa@...co.com>, Will Deacon <will@...nel.org>,
Christophe Leroy <christophe.leroy@...roup.eu>,
Rob Herring <robh@...nel.org>,
Daniel Gimpelevich <daniel@...pelevich.san-francisco.ca.us>,
Andrew Morton <akpm@...ux-foundation.org>,
Pratyush Brahma <quic_pbrahma@...cinc.com>,
Tomas Mudrunka <tomas.mudrunka@...il.com>,
Sean Anderson <sean.anderson@...o.com>, <x86@...nel.org>,
<linux-mips@...r.kernel.org>, <linuxppc-dev@...ts.ozlabs.org>
CC: <xe-linux-external@...co.com>, Ruslan Bilovol <rbilovol@...co.com>,
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/8] CMDLINE: add generic builtin command line
On 11/10/2023 7:08 AM, Daniel Walker wrote:
> diff --git a/lib/generic_cmdline.S b/lib/generic_cmdline.S
> new file mode 100644
> index 000000000000..223763f9eeb6
> --- /dev/null
> +++ b/lib/generic_cmdline.S
> @@ -0,0 +1,53 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#include <linux/export.h>
> +#include <linux/init.h>
> +
> +#include <asm/setup.h>
> +
> + __INITDATA
> +
> + .align 8
> + .global cmdline_prepend
> +cmdline_prepend:
> + .ifnc CONFIG_CMDLINE_PREPEND,""
> + .ascii CONFIG_CMDLINE_PREPEND
> + .string " "
> + .else
> + .byte 0x0
> + .endif
> +#ifdef CONFIG_CMDLINE_EXTRA
> + .space COMMAND_LINE_SIZE - (.-cmdline_prepend)
> + .size cmdline_prepend, COMMAND_LINE_SIZE
> +#endif /* CONFIG_CMDLINE_EXTRA */
> +
> +cmdline_prepend_end:
> + .size cmdline_prepend, (cmdline_prepend_end - cmdline_prepend)
> +
> + .align 8
> + .global cmdline_tmp
> +cmdline_tmp:
> + .ifnc CONFIG_CMDLINE_PREPEND,""
> + .size cmdline_tmp, COMMAND_LINE_SIZE
> + .space COMMAND_LINE_SIZE
> + .else
> + .byte 0x0
> + .endif
> +cmdline_tmp_end:
> + .size cmdline_tmp, (cmdline_tmp_end - cmdline_tmp)
> +
> + .align 8
> + .global cmdline_append
> + .size cmdline_append, COMMAND_LINE_SIZE
> +cmdline_append:
> + .ifnc CONFIG_CMDLINE_APPEND,""
> + .ascii " "
> + .string CONFIG_CMDLINE_APPEND
> + .else
> + .byte 0x0
> + .endif
> +#ifdef CONFIG_CMDLINE_EXTRA
> + .space COMMAND_LINE_SIZE - (.-cmdline_append)
> +#endif /* CONFIG_CMDLINE_EXTRA */
> +cmdline_append_end:
> + .size cmdline_append, (cmdline_append_end - cmdline_append)
> +
Hi Daniel,
I picked these patches to test a usecase of ours. generic_cmdline.S does
not escape semicolons in the CMDLINE_APPEND and CMDLINE_PREPEND strings.
Take this config snippet for example:
CONFIG_CMDLINE_APPEND="slub_debug=FZP,zs_handle,zspage;FZPU page_owner=on"
CONFIG_CMDLINE_BOOL=y
# CONFIG_CMDLINE_EXTRA is not set
# CONFIG_CMDLINE_OVERRIDE is not set
# CONFIG_CMDLINE_PREPEND is not set
# CONFIG_TEST_CMDLINE is not set
While compiling, the word FZPU is considered as a mnemonic because of
the semicolon preceding it causing parsing to fail:
kernel/lib/generic_cmdline.S: Assembler messages:
kernel/lib/generic_cmdline.S:42: Warning: missing closing `"'
kernel/lib/generic_cmdline.S:42: Error: unknown mnemonic `fzpu' -- `fzpu
page_owner=on",""'
Maybe Christophe's suggestion of moving this code to a C file and using
inline assembly helps mitigate similar problems?
Thanks,
Jaskaran.
Powered by blists - more mailing lists