Re: [PATCH v1] of: Put coreboot node after compatibility check

Krzysztof Kozlowski <[email protected]>
Newsgroups gmane.linux.drivers.devicetree,gmane.linux.kernel
Message-ID <20260804-tricky-malachite-robin-192339@quoll>
On Sat, Aug 01, 2026 at 10:38:21PM -0400, Yuho Choi wrote:
> of_find_compatible_node() returns a referenced device node, but
> EXCLUDED_DEFAULT_CELLS_PLATFORMS used the result only as a boolean and
> discarded the reference. This leaked a reference each time the
> address-cells or size-cells warning condition was evaluated on a
> coreboot system.
> 
> Use a helper that drops the node reference after checking whether the
> coreboot node exists.
> 
> Fixes: 8600058ba28a7 ("of: Add coreboot firmware to excluded default cells list")
> Signed-off-by: Yuho Choi <[email protected]>
> ---
>  drivers/of/base.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 6e7a42dedad3..8d04eaed9805 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -95,9 +95,21 @@ static bool __of_node_is_type(const struct device_node *np, const char *type)
>  	return !strcmp(match, type);
>  }
>  
> +static bool of_coreboot_present(void)
> +{
> +	struct device_node *np;
> +	bool found;
> +
> +	np = of_find_compatible_node(NULL, NULL, "coreboot");

Code is simple, but could be even simpler with __free. Basically two
instructions instead of four and no need for this assignment comparison.

> +	found = np != NULL;
> +	of_node_put(np);

Best regards,
Krzysztof
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.