cee25393d8
- Fix P15-8-init-cycle-detection.patch: replace visiting+error with seen+silent-skip to eliminate 11 false-positive 'dependency cycle detected' errors on shared deps - Fix P0-daemon-fix-init-notify-unwrap.patch: remove eprintln! for missing INIT_NOTIFY (expected for oneshot_async services, ~7 daemons affected) - Fix driver-manager hotplug loop: add PERMANENTLY_SKIPPED static set shared between hotplug handler and DriverConfig::probe() to stop infinite re-probing of Fatal/NotSupported/deferred-exhausted device+driver pairs (e.g. ided) - Fix driver-manager log_timeline: suppress repeated EPIPE/ENOENT errors with AtomicI32 dedup and AtomicBool one-shot guards for boot timeline JSON - Add driver-manager SIGTERM handler, ACPI bus registration, --status mode, driver reap loop, graceful shutdown, and reduced deferred retries (30→3)
16 lines
520 B
Diff
16 lines
520 B
Diff
--- a/src/acpi/madt/mod.rs
|
|
+++ b/src/acpi/madt/mod.rs
|
|
@@ -34,6 +34,12 @@
|
|
let madt = Madt::new(find_one_sdt!("APIC"));
|
|
|
|
if let Some(madt) = madt {
|
|
+ // Validate MADT checksum per ACPI 6.5 §5.2.2
|
|
+ if !madt.sdt.validate_checksum() {
|
|
+ error!("MADT checksum validation failed, skipping APIC initialization");
|
|
+ return;
|
|
+ }
|
|
+
|
|
// safe because no APs have been started yet.
|
|
unsafe { MADT.get().write(Some(madt)) };
|
|
|