Re: [RFC PATCH 04/15] libfdt: fdt_rw: Introduce fdt_downgrade_version()
From: David Gibson
Date: Tue Feb 24 2026 - 01:09:47 EST
On Tue, Feb 10, 2026 at 06:33:32PM +0100, Herve Codina wrote:
> Current code perform a version downgrade at one place only, the end of
> fdt_rw_probe_().
>
> In order to offer a finer grain and choose to downgrade or not depending
> on the exact writes done, introduce fdt_downgrade_version() to perform
> the downgrade operation.
>
> The modification doesn't introduce any functional changes.
>
> Signed-off-by: Herve Codina <herve.codina@xxxxxxxxxxx>
Applied, thanks.
> ---
> libfdt/fdt_rw.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/libfdt/fdt_rw.c b/libfdt/fdt_rw.c
> index 7475caf..90ea14e 100644
> --- a/libfdt/fdt_rw.c
> +++ b/libfdt/fdt_rw.c
> @@ -22,6 +22,12 @@ static int fdt_blocks_misordered_(const void *fdt,
> (fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)));
> }
>
> +static void fdt_downgrade_version(void *fdt)
> +{
> + if (!can_assume(LATEST) && fdt_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
> + fdt_set_version(fdt, FDT_LAST_SUPPORTED_VERSION);
> +}
> +
> static int fdt_rw_probe_(void *fdt)
> {
> if (can_assume(VALID_DTB))
> @@ -33,9 +39,8 @@ static int fdt_rw_probe_(void *fdt)
> if (fdt_blocks_misordered_(fdt, sizeof(struct fdt_reserve_entry),
> fdt_size_dt_struct(fdt)))
> return -FDT_ERR_BADLAYOUT;
> - if (!can_assume(LATEST) && fdt_version(fdt) > 17)
> - fdt_set_version(fdt, 17);
>
> + fdt_downgrade_version(fdt);
> return 0;
> }
>
> --
> 2.52.0
>
>
--
David Gibson (he or they) | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you, not the other way
| around.
http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature