diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2025-01-07 17:58:58 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2025-01-07 18:13:54 +0000 |
| commit | 254a2b767f9a39f1541e0a07a70bbe269e86ad70 (patch) | |
| tree | fc4e09e1f9e50248058b142cd9ff98e6f24e0e97 | |
| parent | 1832eb102e10c7f2891c032ecf7b265b75d3cd50 (diff) | |
x86: Short-circuit ipi_all_but_self() on UP systems
Apparently this is required on old intel hw, see
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275086#c3
PR: 275086
Reviewed by: mav, kib
Fixes: 279cd05b7e4d ("Use APIC_IPI_DEST_OTHERS for bitmapped IPIs too.")
MFC after: 1 week
Diagnosed by: Ben Wilber <ben@desync.com>
Differential Revision: https://reviews.freebsd.org/D48361
| -rw-r--r-- | sys/x86/x86/mp_x86.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/x86/x86/mp_x86.c b/sys/x86/x86/mp_x86.c index 493017e303e3..c0da41a4d222 100644 --- a/sys/x86/x86/mp_x86.c +++ b/sys/x86/x86/mp_x86.c @@ -1425,6 +1425,9 @@ ipi_all_but_self(u_int ipi) cpuset_t other_cpus; int cpu, c; + if (mp_ncpus == 1) + return; + /* * IPI_STOP_HARD maps to a NMI and the trap handler needs a bit * of help in order to understand what is the source. |
