Applied, thanks!
Samuel
David Bidner, le mer. 23 sept. 2026 19:55:41 +0200, a ecrit:
> GNU Mach hangs during SMP startup when the firmware exposes more CPUs than
> NCPUS. The broadcast INIT/STARTUP IPI starts every exposed AP, including the
> ones the parser rejected, and the zero-initialised cpu_id_lut made those APs
> alias kernel ID 0 and corrupt the BSP's per-CPU and GDT state.
>
> The series bounds cpu_lapic_list at insertion, keeps the BSP and skips
> unusable MADT entries, parks rejected APs, panics with a reason on APIC
> failure, and clarifies --enable-ncpus.
>
> Changes since v1:
> - former patch 2 split into four patches;
> - former patch 3 now also covers x86_64;
> - patch 1 drops the APIC ID range test.
>
> The series applies to gnumach c5701c1c ("Raise NET_MAX_FILTER").
>
> David Bidner (8):
> apic: Bound cpu_lapic_list by NCPUS
> acpi_parse_apic: Name ACPI error codes
> acpi_parse_apic: Ignore x2APIC and NMI MADT entries
> acpi_parse_apic: Stop on malformed MADT entries
> acpi_parse_apic: Reserve the BSP and bound CPU admission
> cpuboot: Park processors not accepted into the CPU list
> model_dep: Panic on APIC initialization failure
> configfrag-first: Clarify --enable-ncpus help
>
> configfrag-first.ac | 3 +-
> i386/i386/apic.c | 25 ++++++++++--
> i386/i386/apic.h | 3 +-
> i386/i386/cpuboot.S | 12 ++++++
> i386/i386at/acpi_parse_apic.c | 75 +++++++++++++++++++++++++----------
> i386/i386at/acpi_parse_apic.h | 4 +-
> i386/i386at/model_dep.c | 4 +-
> x86_64/cpuboot.S | 17 ++++++++
> 8 files changed, 114 insertions(+), 29 deletions(-)
>
>
--
Samuel
<m> argh, pi est plus grand que 2. Ca casse tout
-+- #ens-mim -+-