]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
of: property: Increase NR_FWNODE_REFERENCE_ARGS
authorZijun Hu <quic_zijuhu@quicinc.com>
Tue, 25 Feb 2025 13:58:06 +0000 (21:58 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Apr 2025 12:33:33 +0000 (14:33 +0200)
[ Upstream commit eb50844d728f11e87491f7c7af15a4a737f1159d ]

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.
Will align both macros later to avoid such inconsistency.

Fixes: 3e3119d3088f ("device property: Introduce fwnode_property_get_reference_args")
Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Link: https://lore.kernel.org/r/20250225-fix_arg_count-v4-1-13cdc519eb31@quicinc.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/fwnode.h

index 525cc031596b681b8c9fdad3624a626ff2c3537d..7efb4493e51c03c089b798965fe555836d3c649b 100644 (file)
@@ -83,7 +83,7 @@ struct fwnode_endpoint {
 #define SWNODE_GRAPH_PORT_NAME_FMT             "port@%u"
 #define SWNODE_GRAPH_ENDPOINT_NAME_FMT         "endpoint@%u"
 
-#define NR_FWNODE_REFERENCE_ARGS       8
+#define NR_FWNODE_REFERENCE_ARGS       16
 
 /**
  * struct fwnode_reference_args - Fwnode reference with additional arguments