Messages in this thread | | | Date | Wed, 22 Nov 2023 14:47:30 -0800 | Subject | Re: [PATCH 2/2] bootconfig: Apply early options from embedded config | From | Randy Dunlap <> |
| |
Hi--
On 11/21/23 15:13, Petr Malat wrote: > Eliminate all allocations in embedded config handling to allow calling > it from arch_setup and applying early options. > > Config stored in initrd can't be used for early options, because initrd > is set up after early options are processed. > > Add this information to the documentation and also to the option > description. > > Signed-off-by: Petr Malat <oss@malat.biz> > --- > Documentation/admin-guide/bootconfig.rst | 3 + > init/Kconfig | 4 +- > init/main.c | 141 ++++++++++++++++++----- > lib/bootconfig.c | 20 +++- > 4 files changed, 132 insertions(+), 36 deletions(-) > > diff --git a/Documentation/admin-guide/bootconfig.rst b/Documentation/admin-guide/bootconfig.rst > index 91339efdcb54..fb085f696f9b 100644 > --- a/Documentation/admin-guide/bootconfig.rst > +++ b/Documentation/admin-guide/bootconfig.rst > @@ -161,6 +161,9 @@ Boot Kernel With a Boot Config > There are two options to boot the kernel with bootconfig: attaching the > bootconfig to the initrd image or embedding it in the kernel itself. > > +Early options may be specified only in the embedded bootconfig, because > +they are processed before the initrd. > +
I'm confused by which options are early options. Are they specified or described somewhere? How does a user know which options are "early" options?
> Attaching a Boot Config to Initrd > --------------------------------- > > diff --git a/init/Kconfig b/init/Kconfig > index 9161d2dbad0c..04de756c935e 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -1310,7 +1310,9 @@ config BOOT_CONFIG > Extra boot config allows system admin to pass a config file as > complemental extension of kernel cmdline when booting. > The boot config file must be attached at the end of initramfs > - with checksum, size and magic word. > + with checksum, size and magic word. Note that early options may > + be specified in the embedded bootconfig only. Early options > + specified in initrd bootconfig will not be applied. > See <file:Documentation/admin-guide/bootconfig.rst> for details. > > If unsure, say Y. > diff --git a/init/main.c b/init/main.c > index 0cd738f7f0cf..9aac59673a3a 100644 > --- a/init/main.c > +++ b/init/main.c
[]
> + > +static int __init setup_boot_config_early(void) > { > static char tmp_cmdline[COMMAND_LINE_SIZE] __initdata; > - const char *msg, *initrd_data; > - int pos, ret; > - size_t initrd_size, embeded_size = 0; > - char *err, *embeded_data = NULL; > + static int prev_rtn __initdata; > + struct xbc_node *root, *knode, *vnode; > + char *embeded_data, *err; > + const char *val, *msg; > + size_t embeded_size; > + int ret, pos;
It hurts my eyes to see "embeded" here.
Thanks. -- ~Randy
| |