lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aQ4oUYkqg5Zi/61T@lizhi-Precision-Tower-5810>
Date: Fri, 7 Nov 2025 12:11:45 -0500
From: Frank Li <Frank.li@....com>
To: Krzysztof Kozlowski <krzk@...nel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
	Rob Herring <robh@...nel.org>,
	Saravana Kannan <saravanak@...gle.com>,
	"Rafael J. Wysocki" <rafael@...nel.org>,
	Viresh Kumar <viresh.kumar@...aro.org>,
	Matthias Brugger <matthias.bgg@...il.com>,
	AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
	Yangtao Li <tiny.windzz@...il.com>, Chen-Yu Tsai <wens@...nel.org>,
	Jernej Skrabec <jernej.skrabec@...il.com>,
	Samuel Holland <samuel@...lland.org>,
	Lorenzo Pieralisi <lpieralisi@...nel.org>,
	Daniel Lezcano <daniel.lezcano@...aro.org>,
	Bjorn Andersson <andersson@...nel.org>,
	Konrad Dybcio <konradybcio@...nel.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Nicolas Ferre <nicolas.ferre@...rochip.com>,
	Alexandre Belloni <alexandre.belloni@...tlin.com>,
	Claudiu Beznea <claudiu.beznea@...on.dev>,
	Maximilian Luz <luzmaximilian@...il.com>,
	Hans de Goede <hansg@...nel.org>,
	Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
	Daniel Lezcano <daniel.lezcano@...nel.org>,
	Thierry Reding <thierry.reding@...il.com>,
	Jonathan Hunter <jonathanh@...dia.com>, devicetree@...r.kernel.org,
	linux-kernel@...r.kernel.org, linux-pm@...r.kernel.org,
	linux-arm-kernel@...ts.infradead.org,
	linux-mediatek@...ts.infradead.org, linux-sunxi@...ts.linux.dev,
	linux-arm-msm@...r.kernel.org, platform-driver-x86@...r.kernel.org,
	linux-tegra@...r.kernel.org
Subject: Re: [PATCH 01/13] of: Add wrappers to match root node with OF device
 ID tables

On Fri, Nov 07, 2025 at 08:00:53AM +0100, Krzysztof Kozlowski wrote:
> On 06/11/2025 20:53, Frank Li wrote:
> > On Thu, Nov 06, 2025 at 08:07:08PM +0100, Krzysztof Kozlowski wrote:
> >> Several drivers duplicate same code for getting reference to the root
> >> node, matching it against 'struct of_device_id' table and getting out
> >> the match data from the table entry.
> >>
> >> There is a of_machine_compatible_match() wrapper but it takes array of
> >> strings, which is not suitable for many drivers since they want the
> >> driver data associated with each compatible.
> >>
> >> Add two wrappers, similar to existing of_device_get_match_data():
> >> 1. of_machine_device_match() doing only matching against 'struct
> >>    of_device_id' and returning bool.
> >> 2. of_machine_get_match_data() doing the matching and returning
> >>    associated driver data for found compatible.
> >>
> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
> >>
> >> ---
> >>
> >> All further patches depend on this.
> >> ---
> >
> > ...
> >>
> >> +/**
> >> + * of_machine_device_match - Test root of device tree against a of_device_id array
> >> + * @matches:	NULL terminated array of of_device_id match structures to search in
> >> + *
> >> + * Returns true if the root node has any of the given compatible values in its
> >> + * compatible property.
> >> + */
> >> +bool of_machine_device_match(const struct of_device_id *matches)
> >
> > Will it be more useful if pass down path
>
> Path is fixed, there is no point to pass it. If you claim otherwise,
> please bring example what benefits would it bring, instead of just
> asking nitpicking questions.

You design new APIs, which should be used more widely. Now there are not
such user case yet, but just avoid need rename again when new case add if
just little bits improve here. Of course, the policy is that add it when
needs. But keep some extentable also negotiable.

>
> >
> > of_machine_device_match(const char* path, const struct of_device_id *matches)
> >
> > caller just pass "\", or NULL point as root
> >
> >> +{
> >> +	struct device_node *root;
> >> +	const struct of_device_id *match = NULL;
> >> +
> >> +	root = of_find_node_by_path("/");
> >
> > Use clean up will simplify code
> >
> > 	struct device_node *root = __free(device_node) = of_find_node_by_path("/");
> Not much difference. Look at existing code first. This should not
> introduce different style.

__free() already used at base.c. It is not necessary to align with what
will cleanup's code. I know it is little improvement, but code will be more
clean and simple.

Frank

>
> Best regards,
> Krzysztof

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ