Messages in this thread | | | Subject | Re: [PATCH v3 1/2] bootconfig: Prohibit re-defining value on same key | From | Randy Dunlap <> | Date | Sat, 22 Feb 2020 08:24:00 -0800 |
| |
On 2/22/20 6:41 AM, Masami Hiramatsu wrote: > On Sat, 22 Feb 2020 10:31:17 +0100 > Geert Uytterhoeven <geert@linux-m68k.org> wrote: > >> Hi Randy, >> >> On Sat, Feb 22, 2020 at 5:30 AM Randy Dunlap <rdunlap@infradead.org> wrote: >>> On 2/21/20 12:13 AM, Masami Hiramatsu wrote: >>>> --- a/Documentation/admin-guide/bootconfig.rst >>>> +++ b/Documentation/admin-guide/bootconfig.rst >>>> @@ -62,7 +62,16 @@ Or more shorter, written as following:: >>>> In both styles, same key words are automatically merged when parsing it >>>> at boot time. So you can append similar trees or key-values. >>>> >>>> -Note that a sub-key and a value can not co-exist under a parent key. >>>> +Same-key Values >>>> +--------------- >>>> + >>>> +It is prohibited that two or more values or arraies share a same-key. >>> >>> I think (?): arrays >>> >>>> +For example,:: >>>> + >>>> + foo = bar, baz >>>> + foo = qux # !ERROR! we can not re-define same key >>>> + >>>> +Also, a sub-key and a value can not co-exist under a parent key. >>>> For example, following config is NOT allowed.:: >>>> >>>> foo = value1 >>> >>> >>> I'm pretty sure that the kernel command line allows someone to use >>> key=value1 ... key=value2 >>> and the first setting is just overwritten with value2 (for most "key"s). >>> >>> Am I wrong? and is this patch saying that bootconfig won't operate like that? >> >> I think so. Both are retained. >> A typical example is "console=ttyS0 console=tty", to have the kernel output >> on both the serial and the graphical console.
Yes, I was aware of that one also.
> Right, it actually depends on how the option is defined and its handler. > If the option is defined with module_param*() macros, those will be > overwritten. > But if it is defined with __setup() or early_param(), the handler function > will be called repeatedly. Thus, overwrite or append or skip later one > depends on the option handler.
OK, thanks for that clarification.
> I think the bootconfig is a bit different from legacy command line at > this moment. The legacy command line can be modified by bootloader, > whereas the bootconfig is a single text file which user can update > each value. Of course bootloader will support the bootconfig to append > some key-values in the future. > So I would like to introduce another "overwrite" operator (":=") and > "assign default" operator ("?=") too. With those operators, the > bootloader can just add their own key-value without decoding the > current bootconfig.
-- ~Randy
| |