git: b827afb9e3a7 - releng/14.1 - Revert "intrng: switch from MAXCPU to mp_ncpus"
Date: Wed, 15 May 2024 16:35:59 UTC
The branch releng/14.1 has been updated by karels:
URL: https://cgit.FreeBSD.org/src/commit/?id=b827afb9e3a7aaaa2da7d101c46881c646d4df2f
commit b827afb9e3a7aaaa2da7d101c46881c646d4df2f
Author: Mike Karels <karels@FreeBSD.org>
AuthorDate: 2024-05-14 22:44:58 +0000
Commit: Mike Karels <karels@FreeBSD.org>
CommitDate: 2024-05-15 16:35:38 +0000
Revert "intrng: switch from MAXCPU to mp_ncpus"
This reverts commit b4d11915c73f199501672b278be86e1f63790036.
This is a direct commit to stable/14. The change breaks booting
on older Raspberry Pi 4's, although that works on main. The cause
is unknown. The original commit should be redone on stable/14
if/when it catches up with main.
(cherry picked from commit 3e627553bbd791a4f73eaeea2c2d795fd4e0ee70)
Approved-by: re (cperciva)
---
sys/kern/subr_intr.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/sys/kern/subr_intr.c b/sys/kern/subr_intr.c
index 49fe20cdc890..6535c42f2404 100644
--- a/sys/kern/subr_intr.c
+++ b/sys/kern/subr_intr.c
@@ -175,11 +175,11 @@ intr_irq_init(void *dummy __unused)
/*
* - 2 counters for each I/O interrupt.
- * - mp_maxid + 1 counters for each IPI counters for SMP.
+ * - MAXCPU counters for each IPI counters for SMP.
*/
nintrcnt = intr_nirq * 2;
#ifdef SMP
- nintrcnt += INTR_IPI_COUNT * (mp_maxid + 1);
+ nintrcnt += INTR_IPI_COUNT * MAXCPU;
#endif
intrcnt = mallocarray(nintrcnt, sizeof(u_long), M_INTRNG,
@@ -312,18 +312,18 @@ intr_ipi_setup_counters(const char *name)
mtx_lock(&isrc_table_lock);
/*
- * We should never have a problem finding mp_maxid + 1 contiguous
- * counters, in practice. Interrupts will be allocated sequentially
- * during boot, so the array should fill from low to high index. Once
- * reserved, the IPI counters will never be released. Similarly, we
- * will not need to allocate more IPIs once the system is running.
+ * We should never have a problem finding MAXCPU contiguous counters,
+ * in practice. Interrupts will be allocated sequentially during boot,
+ * so the array should fill from low to high index. Once reserved, the
+ * IPI counters will never be released. Similarly, we will not need to
+ * allocate more IPIs once the system is running.
*/
- bit_ffc_area(intrcnt_bitmap, nintrcnt, mp_maxid + 1, &index);
+ bit_ffc_area(intrcnt_bitmap, nintrcnt, MAXCPU, &index);
if (index == -1)
panic("Failed to allocate %d counters. Array exhausted?",
- mp_maxid + 1);
- bit_nset(intrcnt_bitmap, index, index + mp_maxid);
- for (i = 0; i < mp_maxid + 1; i++) {
+ MAXCPU);
+ bit_nset(intrcnt_bitmap, index, index + MAXCPU - 1);
+ for (i = 0; i < MAXCPU; i++) {
snprintf(str, INTRNAME_LEN, "cpu%d:%s", i, name);
intrcnt_setname(str, index + i);
}