[kernel][hypervisor] Ensure singleton mutex is initialised.

Due to fxbug.dev/78920, singleton mutexes are not thread-safe on their
first use. In the case of the hypervisor, this can lead to the system's
EL2 state incorrectly being initialised multiple times, leading to stack
corruption of EL2.

We temporarily work around the issue until the underlying bug is fixed
by ensuring the mutex is initialised during system boot.

Bug: 78920
Bug: 77932
Change-Id: Ie46cde3ea2e06ae594c26be6470b4a6e0f4d6830
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/544301
Reviewed-by: Abdulla Kamar <abdulla@google.com>
Reviewed-by: Adrian Danis <adanis@google.com>
Commit-Queue: David Greenaway <dgreenaway@google.com>
2 files changed
tree: 404d8bb9f6750c17eb3a81045d1ef51369e26a66
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.