Re: [PATCH v3] of: property: Increase NR_FWNODE_REFERENCE_ARGS

From: Andy Shevchenko
Date: Mon Feb 10 2025 - 10:35:06 EST


On Mon, Feb 10, 2025 at 11:00:32PM +0800, Zijun Hu wrote:
> From: Zijun Hu <quic_zijuhu@xxxxxxxxxxx>
>
> Currently, the following two macros have different values:
>
> // The maximal argument count for firmware node reference
> #define NR_FWNODE_REFERENCE_ARGS 8
> // The maximal argument count for DT node reference
> #define MAX_PHANDLE_ARGS 16
>
> It may cause firmware node reference's argument count out of range if
> directly assign DT node reference's argument count to firmware's.
>
> drivers/of/property.c:of_fwnode_get_reference_args() is doing the direct
> assignment, so may cause firmware's argument count @args->nargs got out
> of range, namely, in [9, 16].
>
> Fix by increasing NR_FWNODE_REFERENCE_ARGS to 16 to meet DT requirement.

...

> -#define NR_FWNODE_REFERENCE_ARGS 8
> +#define NR_FWNODE_REFERENCE_ARGS 16

Thinking of the case, perhaps you also want

static_assert(NR_FWNODE_REFERENCE_ARGS == MAX_PHANDLE_ARGS);

to be put somewhere, but I don't think we can do it in this header file.

--
With Best Regards,
Andy Shevchenko