22ba65ea07
Three workstreams delivered in Round 2 (no build per operator
directive; verification deferred):
1. Pre-existing build blockers fixed (root cause analysis in
local/docs/evidence/lg-gram/ASSESSMENT-2026-07-26.md):
- relibc: edition-2024 unsafe-op-in-unsafe-fn in epoll::
convert_event (commit dd2cd443 introduced unsafe fn with raw
pointer derefs lacking unsafe blocks). Fix in submodule/relibc
commit b80f8b47 wraps each deref in unsafe { } with SAFETY
justification; outer unsafe fn signature preserved.
- base: acpid Cargo.toml 'common' path bug. acpid lives at
drivers/acpid/ (depth 2 in base workspace) but declared
common = { path = "../../common" } (2 ..) which resolves to
base/common/ — a path that has never existed. All 8 other
depth-2 crates correctly use ../common. The build script's
overlay-integrity auto-repair normally papers over this; it
failed during Round 1 verification. Fix in submodule/base
commit 28e356d5 makes acpid consistent with siblings.
2. Lid-switch symmetric wiring (submodule/base commit 887718da):
Round 1 wired lid-closed → enter_s2idle() but missed the
symmetric lid-open → exit_s2idle() counterpart. Without it,
the system stays in 'wake devices armed' state when MWAIT
never engaged. Round 2 makes the wiring symmetric. The
userspace-driven wake path coexists with the kernel MWAIT-
return path (kstop reason=2); the double-call is safe per
ACPI 6.5 §3.5.3 (_WAK/_SST idempotent in working state).
3. Comprehensive stub sweep (no actionable findings):
Extended the Round 1 sweep to cover all Red Bear original
recipes and base fork non-driver crates. Zero unimplemented!()/
todo!() macros in Red Bear original code. Remaining 'stubs' are
either documented dead code (lookup_hid_quirks + HidQuirkFlags
— 5-flag type defined, no consumer) or empty-by-design tables
with real loader shape (PLATFORM_RULES, DMI_ACPI_QUIRK_RULES —
documented in Round 1). No new stubs replaced.
Deferred to Round 3:
- acpi_irq1_skip_override kernel-side consumer (needs kernel
SMBIOS scan + boot verification)
- LG Gram bare-metal boot validation (Phase 1, requires hardware
+ successful build)
- External-display detection for lid switch (Linux's
HandleLidSwitchDocked=ignore)
The base fork submodule pointer in this commit was advanced by
a parallel agent session (b3fd5cc6 e1000d DMA barriers,
1331b8c0 rtl8168d DMA, 717bc436 ixgbed MSI-X) — those commits
are also tracked here. The relibc fork pointer advances to
b80f8b47 (my unsafe-block fix).