[PATCH] genirq/affinity: Remove cpus_read_lock() while reading cpu_possible_mask

Sebastian Andrzej Siewior posted 1 patch 6 hours ago
There is a newer version of this series
kernel/irq/affinity.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
[PATCH] genirq/affinity: Remove cpus_read_lock() while reading cpu_possible_mask
Posted by Sebastian Andrzej Siewior 6 hours ago
cpu_possible_mask is set early during boot based on information from the
firmware. After that it remains read only and is never changed.
Therefore there is no need to acquire CPU-hotplug locks while reading
it.

Remove cpus_read_*() while accessing cpu_possible_mask.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 kernel/irq/affinity.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c
index 85c45cfe72238..78f2418a89252 100644
--- a/kernel/irq/affinity.c
+++ b/kernel/irq/affinity.c
@@ -115,13 +115,10 @@ unsigned int irq_calc_affinity_vectors(unsigned int minvec, unsigned int maxvec,
 	if (resv > minvec)
 		return 0;
 
-	if (affd->calc_sets) {
+	if (affd->calc_sets)
 		set_vecs = maxvec - resv;
-	} else {
-		cpus_read_lock();
+	else
 		set_vecs = cpumask_weight(cpu_possible_mask);
-		cpus_read_unlock();
-	}
 
 	return resv + min(set_vecs, maxvec - resv);
 }
-- 
2.53.0
[tip: irq/core] genirq/affinity: Remove cpus_read_lock() while reading cpu_possible_mask
Posted by tip-bot2 for Sebastian Andrzej Siewior 4 hours ago
The following commit has been merged into the irq/core branch of tip:

Commit-ID:     34d85ad42604fbb5a8903488c6a7e2862e2d0254
Gitweb:        https://git.kernel.org/tip/34d85ad42604fbb5a8903488c6a7e2862e2d0254
Author:        Sebastian Andrzej Siewior <bigeasy@linutronix.de>
AuthorDate:    Wed, 01 Apr 2026 14:13:34 +02:00
Committer:     Thomas Gleixner <tglx@kernel.org>
CommitterDate: Wed, 01 Apr 2026 16:09:05 +02:00

genirq/affinity: Remove cpus_read_lock() while reading cpu_possible_mask

cpu_possible_mask is set early during boot based on information from the
firmware. After that it remains read only and is never changed.  Therefore
there is no need to acquire the CPU-hotplug lock while reading it.

Remove cpus_read_*() while accessing cpu_possible_mask.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260401121334.xeMOSC1v@linutronix.de
---
 kernel/irq/affinity.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c
index 85c45cf..78f2418 100644
--- a/kernel/irq/affinity.c
+++ b/kernel/irq/affinity.c
@@ -115,13 +115,10 @@ unsigned int irq_calc_affinity_vectors(unsigned int minvec, unsigned int maxvec,
 	if (resv > minvec)
 		return 0;
 
-	if (affd->calc_sets) {
+	if (affd->calc_sets)
 		set_vecs = maxvec - resv;
-	} else {
-		cpus_read_lock();
+	else
 		set_vecs = cpumask_weight(cpu_possible_mask);
-		cpus_read_unlock();
-	}
 
 	return resv + min(set_vecs, maxvec - resv);
 }