Skip to contentSkip to conversation

arm64: Convert to using %pOF instead of full_name

PATCH In review Rob Herring 3 participants 5 messages Jul 18, 2017 – Jul 26, 2017 arm64

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 arm64: Convert to using %pOF instead of full_name

Now that we have a custom printf format specifier, convert users of full_name to use %pOF instead. This is preparation to remove storing of the full path string for each node.

Cc Catalin Marinas <[email protected]>
Cc Will Deacon <[email protected]>
Cc linux-arm-kernel at lists.infradead.org
---
 arch/arm64/kernel/cpu_ops.c  |  4 ++--
 arch/arm64/kernel/smp.c      | 12 ++++++------
 arch/arm64/kernel/topology.c | 22 +++++++++++-----------
 3 files changed, 19 insertions(+), 19 deletions(-)
arch/arm64/kernel/cpu_ops.c +2 -2
index e137ceaf5016..d16978213c5b 100644
@@ -82,8 +82,8 @@ static const char *__init cpu_read_enable_method(int cpu)
 			 * Don't warn spuriously.
 			 */
 			if (cpu != 0)
-				pr_err("%s: missing enable-method property\n",
-					dn->full_name);
+				pr_err("%pOF: missing enable-method property\n",
+					dn);
 		}
 	} else {
 		enable_method = acpi_get_enable_method(cpu);
arch/arm64/kernel/smp.c +6 -6
index 321119881abf..dc66e6ec3a99 100644
@@ -469,7 +469,7 @@ static u64 __init of_get_cpu_mpidr(struct device_node *dn)
 	 */
 	cell = of_get_property(dn, "reg", NULL);
 	if (!cell) {
-		pr_err("%s: missing reg property\n", dn->full_name);
+		pr_err("%pOF: missing reg property\n", dn);
 		return INVALID_HWID;
 	}
 
@@ -478,7 +478,7 @@ static u64 __init of_get_cpu_mpidr(struct device_node *dn)
 	 * Non affinity bits must be set to 0 in the DT
 	 */
 	if (hwid & ~MPIDR_HWID_BITMASK) {
-		pr_err("%s: invalid reg property\n", dn->full_name);
+		pr_err("%pOF: invalid reg property\n", dn);
 		return INVALID_HWID;
 	}
 	return hwid;
@@ -627,8 +627,8 @@ static void __init of_parse_and_init_cpus(void)
 			goto next;
 
 		if (is_mpidr_duplicate(cpu_count, hwid)) {
-			pr_err("%s: duplicate cpu reg properties in the DT\n",
-				dn->full_name);
+			pr_err("%pOF: duplicate cpu reg properties in the DT\n",
+				dn);
 			goto next;
 		}
 
@@ -640,8 +640,8 @@ static void __init of_parse_and_init_cpus(void)
 		 */
 		if (hwid == cpu_logical_map(0)) {
 			if (bootcpu_valid) {
-				pr_err("%s: duplicate boot cpu reg property in DT\n",
-					dn->full_name);
+				pr_err("%pOF: duplicate boot cpu reg property in DT\n",
+					dn);
 				goto next;
 			}
 
arch/arm64/kernel/topology.c +11 -11
index 79244c75eaec..8d48b233e6ce 100644
@@ -45,7 +45,7 @@ static int __init get_cpu_for_node(struct device_node *node)
 		}
 	}
 
-	pr_crit("Unable to find CPU node for %s\n", cpu_node->full_name);
+	pr_crit("Unable to find CPU node for %pOF\n", cpu_node);
 
 	of_node_put(cpu_node);
 	return -1;
@@ -71,8 +71,8 @@ static int __init parse_core(struct device_node *core, int cluster_id,
 				cpu_topology[cpu].core_id = core_id;
 				cpu_topology[cpu].thread_id = i;
 			} else {
-				pr_err("%s: Can't get CPU for thread\n",
-				       t->full_name);
+				pr_err("%pOF: Can't get CPU for thread\n",
+				       t);
 				of_node_put(t);
 				return -EINVAL;
 			}
@@ -84,15 +84,15 @@ static int __init parse_core(struct device_node *core, int cluster_id,
 	cpu = get_cpu_for_node(core);
 	if (cpu >= 0) {
 		if (!leaf) {
-			pr_err("%s: Core has both threads and CPU\n",
-			       core->full_name);
+			pr_err("%pOF: Core has both threads and CPU\n",
+			       core);
 			return -EINVAL;
 		}
 
 		cpu_topology[cpu].cluster_id = cluster_id;
 		cpu_topology[cpu].core_id = core_id;
 	} else if (leaf) {
-		pr_err("%s: Can't get CPU for leaf core\n", core->full_name);
+		pr_err("%pOF: Can't get CPU for leaf core\n", core);
 		return -EINVAL;
 	}
 
@@ -137,8 +137,8 @@ static int __init parse_cluster(struct device_node *cluster, int depth)
 			has_cores = true;
 
 			if (depth == 0) {
-				pr_err("%s: cpu-map children should be clusters\n",
-				       c->full_name);
+				pr_err("%pOF: cpu-map children should be clusters\n",
+				       c);
 				of_node_put(c);
 				return -EINVAL;
 			}
@@ -146,8 +146,8 @@ static int __init parse_cluster(struct device_node *cluster, int depth)
 			if (leaf) {
 				ret = parse_core(c, cluster_id, core_id++);
 			} else {
-				pr_err("%s: Non-leaf cluster with core %s\n",
-				       cluster->full_name, name);
+				pr_err("%pOF: Non-leaf cluster with core %s\n",
+				       cluster, name);
 				ret = -EINVAL;
 			}
 
@@ -159,7 +159,7 @@ static int __init parse_cluster(struct device_node *cluster, int depth)
 	} while (c);
 
 	if (leaf && !has_cores)
-		pr_warn("%s: empty cluster\n", cluster->full_name);
+		pr_warn("%pOF: empty cluster\n", cluster);
 
 	if (leaf)
 		cluster_id++;

--
2.11.0

#1 lore raw

[adding Luc]

Hi Rob,

Quoted 8 lines · Rob Herring

Now that we have a custom printf format specifier, convert users of full_name to use %pOF instead. This is preparation to remove storing of the full path string for each node.

Quoted 5 lines
---
 arch/arm64/kernel/cpu_ops.c  |  4 ++--
 arch/arm64/kernel/smp.c      | 12 ++++++------
 arch/arm64/kernel/topology.c | 22 +++++++++++-----------
 3 files changed, 19 insertions(+), 19 deletions(-)

I've queued this and the perf patch too, but it would be good if somebody could update sparse to recognise this format specifier. Currently it just complains about it.

Will

#2 lore raw
Quoted 19 lines · Will Deacon

[adding Luc]

Hi Rob,

Quoted 8 lines · Rob Herring

Now that we have a custom printf format specifier, convert users of full_name to use %pOF instead. This is preparation to remove storing of the full path string for each node.

Cc Catalin Marinas <[email protected]>
Cc Will Deacon <[email protected]>
Cc linux-arm-kernel at lists.infradead.org
Quoted 5 lines
---
 arch/arm64/kernel/cpu_ops.c  |  4 ++--
 arch/arm64/kernel/smp.c      | 12 ++++++------
 arch/arm64/kernel/topology.c | 22 +++++++++++-----------
 3 files changed, 19 insertions(+), 19 deletions(-)
Quoted 3 lines

I've queued this and the perf patch too, but it would be good if somebody could update sparse to recognise this format specifier. Currently it just complains about it.

I'm happy to fix it, but I ran sparse and don't see any errors. Got a pointer?

Rob

#3 lore raw

Hi Rob,

Quoted 16 lines · Rob Herring
Quoted 15 lines · Will Deacon
Quoted 13 lines · Rob Herring

Now that we have a custom printf format specifier, convert users of full_name to use %pOF instead. This is preparation to remove storing of the full path string for each node.

Cc Catalin Marinas <[email protected]>
Cc Will Deacon <[email protected]>
Cc linux-arm-kernel at lists.infradead.org
---
 arch/arm64/kernel/cpu_ops.c  |  4 ++--
 arch/arm64/kernel/smp.c      | 12 ++++++------
 arch/arm64/kernel/topology.c | 22 +++++++++++-----------
 3 files changed, 19 insertions(+), 19 deletions(-)
Quoted 5 lines
Quoted 3 lines

I've queued this and the perf patch too, but it would be good if somebody could update sparse to recognise this format specifier. Currently it just complains about it.

I'm happy to fix it, but I ran sparse and don't see any errors. Got a pointer?

I went back and checked again and it's not sparse that's warning, it's actually smatch (sorry for getting that mixed up):

arch/arm64/kernel/cpu_ops.c:85 cpu_read_enable_method() error: unrecognized %p extension 'O', treated as normal %p [smatch]

Will

#4 lore raw

Sorry about the false positive. I will push a fix for that later today or tomorrow at the latest.

regards,
dan carpenter