From: Alexander Sverdlin <alexander.sverdlin@gmail.com>
To: Rob Herring <robh@kernel.org>, Linus Walleij <linus.walleij@linaro.org>
Cc: devicetree@vger.kernel.org, Frank Rowand <frowand.list@gmail.com>,
linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@kernel.org>,
Nikita Shubin <nikita.shubin@maquefel.me>,
Hartley Sweeten <hsweeten@visionengravers.com>,
Lukasz Majewski <lukma@denx.de>,
Linus Walleij <linusw@kernel.org>
Subject: Re: [PATCH] of: fdt: Honor CONFIG_CMDLINE* even without /chosen node
Date: Tue, 13 Dec 2022 23:07:44 +0100 [thread overview]
Message-ID: <6a288c4f54aa501e265a4f4847f2d2e53c597c34.camel@gmail.com> (raw)
In-Reply-To: <20221213152920.GA1025576-robh@kernel.org>
Hello Rob,
On Tue, 2022-12-13 at 09:29 -0600, Rob Herring wrote:
> On Tue, Dec 13, 2022 at 09:51:33AM +0100, Linus Walleij wrote:
> > On Mon, Dec 12, 2022 at 7:01 AM Alexander Sverdlin
> > <alexander.sverdlin@gmail.com> wrote:
> >
> > > I do not read a strict requirement on /chosen node in either ePAPR or in
> > > Documentation/devicetree. Help text for CONFIG_CMDLINE and
> > > CONFIG_CMDLINE_EXTEND doesn't make their behavior explicitly dependent on
> > > the presence of /chosen or the presense of /chosen/bootargs.
> > >
> > > However the early check for /chosen and bailing out in
> > > early_init_dt_scan_chosen() skips CONFIG_CMDLINE handling which is not
> > > really related to /chosen node or the particular method of passing cmdline
> > > from bootloader.
> > >
> > > This leads to counterintuitive combinations (assuming
> > > CONFIG_CMDLINE_EXTEND=y):
> > >
> > > a) bootargs="foo", CONFIG_CMDLINE="bar" => cmdline=="foo bar"
> > > b) /chosen missing, CONFIG_CMDLINE="bar" => cmdline==""
> > > c) bootargs="", CONFIG_CMDLINE="bar" => cmdline==" bar"
> > >
> > > Move CONFIG_CMDLINE handling outside of early_init_dt_scan_chosen() so that
> > > cases b and c above result in the same cmdline.
> > >
> > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
> >
> > Excellent debugging Alexander!
> > Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
> >
> > I also think this should go to stable.
>
> We have to be careful there. This could change behavior on a working
> system. A system taking the cmdline entirely from a built kernel and
> no initrd is going to be pretty customized already, I think they can
> carry a patch. What platform is this anyways?
I've stumbled upon this testing first DT conversion patches for EP93xx (ARM).
> This has actually been known for some time[1][2]. My concern in the past
> (besides wanting all the cmdline manipulation being common) was MIPS.
This "change of behavior" actually changes one exact corner case:
no /chosen node + CONFIG_CMDLINE!="" + CONFIG_CMDLINE_EXTEND=y
If someone was intentionally hiding something in the config file
under CONFIG_CMDLINE but didn't want it to appear on the kernel command
line in the past, he could just reconfigure new kernel version after
the change and remove the above configs.
> MIPS in particular has lots of sources for cmdline and ways to combine
> it. However, MIPS has since stopped using this code and does their own
> parsing (not great either IMO).
I agree, this code screams to be common.
--
Alexander Sverdlin.
next prev parent reply other threads:[~2022-12-13 22:07 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-11 23:58 [PATCH] of: fdt: Honor CONFIG_CMDLINE* even without /chosen node Alexander Sverdlin
2022-12-12 7:29 ` Arnd Bergmann
2022-12-13 8:51 ` Linus Walleij
2022-12-13 15:29 ` Rob Herring
2022-12-13 22:07 ` Alexander Sverdlin [this message]
2022-12-15 17:40 ` Rob Herring
-- strict thread matches above, loose matches on Subject: below --
2022-12-11 23:58 Alexander Sverdlin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6a288c4f54aa501e265a4f4847f2d2e53c597c34.camel@gmail.com \
--to=alexander.sverdlin@gmail.com \
--cc=arnd@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=hsweeten@visionengravers.com \
--cc=linus.walleij@linaro.org \
--cc=linusw@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukma@denx.de \
--cc=nikita.shubin@maquefel.me \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).