Files
RedBear-OS/local/recipes/system
vasilito 1ef6e6c893 driver-manager v4.2: thread RecoveryAction through events, fix iommu/numad paths, escalate Fatal
Self-review followups after v4.1, plus two correctness fixes the audit
uncovered.

unified_events:
* Carry RecoveryAction through the Aer variant of UnifiedEvent. The
  routing decision (route_to_driver against the latest bind snapshot)
  is made once in run() and threaded into the callback, so the
  callback does not recompute it. Eliminates a duplicate
  route_to_driver call per AER event.
* Update the unified_events test to the new Aer { event, action }
  shape.

main.rs:
* Simplified AER callback: no double route_to_driver, no
  dead cfg(not(target_os = "redox")) arm. Dispatch gated on
  cfg(target_os = "redox") so host builds compile.
* RecoveryAction::Fatal escalation: emit a stable ERROR-level
  marker ('AER-FATAL: device=... driver-already-dead escalation
  marker ...') before the action_str match returns None. Operator
  tooling can grep this marker to detect unrecoverable events that
  need human attention. No auto-dispatch on Fatal by design -- the
  driver is dead, recovery cannot succeed.

modern_technology:
* iommu_group_for: replace the unmatchable hash-keyed path check
  (/scheme/iommu/domain/<hash(bdf)>) with scheme-presence detection
  (/scheme/iommu exists). The iommu daemon does NOT expose a BDF to
  group lookup, so scheme-presence is the strongest signal
  available without opening a handle.
* numa_node_for: replace the wrong /scheme/numad/device/<bdf>
  check (numad does NOT expose that path) with the correct
  /scheme/proc/numa presence check (numad writes topology there).
* numa_node_env_value: dedupe -- reuse numa_node_for's source
  discriminant instead of duplicating the path-existence check.

Tests:
  - driver-manager: 63 passed (no change)
  - redox-driver-core: 32 passed (no change)
  - host build clean
2026-07-24 23:53:04 +09:00
..