Re: [PATCH] power: reset: reboot-mode: better compatibility with DT (replace ' ,/')
From: André Draszik
Date: Wed Mar 19 2025 - 01:35:19 EST
Hi,
On Fri, 2025-03-07 at 07:50 +0000, André Draszik wrote:
> This driver's purpose is to parse boot modes described in DT, via key
> (node name) / value pairs, and to match them to a reboot mode requested
> by the kernel. Unfortunately, DT node names can not contain certain
> characters, like space ' ' or comma ',' or slash '/', while the
> requested reboot mode may.
>
> This is a problem because it makes it impossible to match reboot modes
> containing any of those characters.
>
> For example, this makes it impossible to communicate DM verity errors
> to the boot loader - DM verity errors trigger a reboot with mode
> "dm-verity device corrupted" in drivers/md/dm-verity-target.c and
> devices typically have to take action in that case [1]. Changing this
> string itself is not feasible, see e.g. discussion in [2], but would
> also just cover this one case.
>
> Another example is Android, which may use comma in the reboot mode
> string, e.g. as "shutdown,thermal" in [3].
>
> The kernel also shouldn't prescribe what characters are allowed inside
> the boot mode string for a user to set. It hasn't done this so far, and
> introducing such a restriction would be an interface break and
> arbitrarily enforce a random new policy.
>
> Therefore, update this driver to do another round of string matching,
> after replacing the common characters mentioned above with dash '-', if
> a match hasn't been found without doing said replacement.
> This now allows us to have DT entries of e.g.:
>
> mode-dm-verity-device-corrupted = <...>
>
> and so on.
Friendly ping. Any thoughts on this?
Cheers,
Andre'