[tip: irq/urgent] irqchip/gic-v5: Remove undue WARN_ON()s in the IRS affinity parsing

tip-bot2 for Lorenzo Pieralisi posted 1 patch 1 month, 1 week ago
drivers/irqchip/irq-gic-v5-irs.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
[tip: irq/urgent] irqchip/gic-v5: Remove undue WARN_ON()s in the IRS affinity parsing
Posted by tip-bot2 for Lorenzo Pieralisi 1 month, 1 week ago
The following commit has been merged into the irq/urgent branch of tip:

Commit-ID:     35c23871be0072738ccc7ca00354c791711e5640
Gitweb:        https://git.kernel.org/tip/35c23871be0072738ccc7ca00354c791711e5640
Author:        Lorenzo Pieralisi <lpieralisi@kernel.org>
AuthorDate:    Thu, 14 Aug 2025 11:41:38 +02:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Sun, 24 Aug 2025 12:54:06 +02:00

irqchip/gic-v5: Remove undue WARN_ON()s in the IRS affinity parsing

In gicv5_irs_of_init_affinity() a WARN_ON() is triggered if:

 1) a phandle in the "cpus" property does not correspond to a valid OF
    node
 2  a CPU logical id does not exist for a given OF cpu_node

#1 is a firmware bug and should be reported as such but does not warrant a
   WARN_ON() backtrace.

#2 is not necessarily an error condition (eg a kernel can be booted with
   nr_cpus=X limiting the number of cores artificially) and therefore there
   is no reason to clutter the kernel log with WARN_ON() output when the
   condition is hit.

Rework the IRS affinity parsing code to remove undue WARN_ON()s thus
making it less noisy.

Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20250814094138.1611017-1-lpieralisi@kernel.org

---
 drivers/irqchip/irq-gic-v5-irs.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/irqchip/irq-gic-v5-irs.c b/drivers/irqchip/irq-gic-v5-irs.c
index ffc9773..13c0357 100644
--- a/drivers/irqchip/irq-gic-v5-irs.c
+++ b/drivers/irqchip/irq-gic-v5-irs.c
@@ -626,12 +626,14 @@ static int __init gicv5_irs_of_init_affinity(struct device_node *node,
 		int cpu;
 
 		cpu_node = of_parse_phandle(node, "cpus", i);
-		if (WARN_ON(!cpu_node))
+		if (!cpu_node) {
+			pr_warn(FW_BUG "Erroneous CPU node phandle\n");
 			continue;
+		}
 
 		cpu = of_cpu_node_to_id(cpu_node);
 		of_node_put(cpu_node);
-		if (WARN_ON(cpu < 0))
+		if (cpu < 0)
 			continue;
 
 		if (iaffids[i] & ~iaffid_mask) {