[zircon][vm][ppb] Fix (new) page replacement on ALWAYS_NEED

The page replacment during ZX_VMAR_OP_ALWAYS_NEED wasn't
able to unmap due to currently_faulting_ and the fact that
PageFaultWithVmoCallback() expects the looked-up physical
address to remain the same across vmo_locked_callback().

By not using the page fault path to set always_need = 1,
we avoid currently_faulting_ true, so the unmap during
ReplacePage() isn't ignored.

Also fix a bad merge.

Change-Id: I5a8b0d00ef5f79cc49f2d933c16544305188755f
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/615141
Reviewed-by: Adrian Danis <adanis@google.com>
Reviewed-by: Rasha Eqbal <rashaeqbal@google.com>
Commit-Queue: Dustin Green <dustingreen@google.com>
(cherry picked from commit 484a6c9a62cdad035e8fc33dd7e3a2c8550ce3f3)
2 files changed
tree: a08d72704c02e09a36d37a54a12a5c00533692df
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .git-blame-ignore-revs
  17. .gitattributes
  18. .gitignore
  19. .gn
  20. .style.yapf
  21. analysis_options.yaml
  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

What is Fuchsia?

Fuchsia an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

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.