security: add SMP spinlock protection to futex table (H5)
- Add g_futex_lock spinlock to protect global futex_waiters table
- Protect futex_cleanup_process with spinlock
- Protect FUTEX_WAIT path with spinlock:
- Slot allocation and registration
- Timeout cleanup on early return
- Cleanup after schedule() wakeup
- Protect FUTEX_WAKE path with spinlock:
- Wakeup loop over waiters
- Existing shared keying by (addr_space, uaddr) preserved
- Prevents race conditions in SMP environments
Validation:
- make -j12: PASS
- make test-host: PASS (111/111)
- make test SMOKE_SMP=4: PASS (127/127)
- make test-battery: PASS (153/153)
- make analyzer: PASS
Addresses H5 from docs/URGENT_SECURITY_STATUS_2026-06-09.md