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:		279cd05b7e ("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

(cherry picked from commit 254a2b767f9a39f1541e0a07a70bbe269e86ad70)
This commit is contained in:
Mark Johnston 2025-01-07 17:58:58 +00:00
parent e394357333
commit f849557c06

View file

@ -1427,6 +1427,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.