No description
Find a file
Jiyong Park bc144baf0e Handle qcow image backed by a composite disk
This CL fixes a bug that was introduced by [1] where max_nesting_depth
is used to prevent unbounded nesting of qcow images.

When a qcow image is backed by a composite disk, the composite disk is
parsed twice: (1) once before the qcow header is created, and (2) once
again after the composite disk is written to the header and the header
is parsed. The max_nesting_depth was set correctly for (1), but was set
to 1 for (2). Since a composite disk inherently is nested,
max_nesting_depth drops to 0 and it causes an error.

This CL fixes the bug by respecting max_nesting_depth also for the case
(2).

Bug: N/A
Test: launch cuttlefish

[1] https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3146214

Change-Id: Ic2d30df6c76a0c1965e222960e0094fe847b1097
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3267734
Auto-Submit: Jiyong Park <jiyong@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andrew Walbran <qwandor@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Keiichi Watanabe <keiichiw@chromium.org>
2021-11-11 11:08:48 +00:00
.devcontainer Add new dev container and install-deps scripts 2021-10-15 22:12:02 +00:00
.github github: Don't use 80-char rule in pull_request_template 2021-10-29 16:19:21 +00:00
aarch64 aarch64: Fix warnings 2021-11-11 05:29:02 +00:00
acpi_tables Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
arch Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
bin Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
bit_field crosvm: fix needless_borrow clippy warning 2021-08-25 23:02:23 +00:00
ci/kokoro ci: kokoro: Run mdbook command 2021-11-01 19:26:51 +00:00
common vm-memory: mlock2(MLOCK_ONFAULT) guest memory for protected VMs 2021-11-09 18:59:20 +00:00
crosvm-fuzz Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
crosvm_plugin Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
devices devices: vfio: Fix a msix table and msix pba table overlapping issue 2021-11-10 23:21:11 +00:00
disk Handle qcow image backed by a composite disk 2021-11-11 11:08:48 +00:00
docs/book crosvm: Sprinkle notes on API search. 2021-11-08 07:21:20 +00:00
fuse Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
gpu_display Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
hypervisor aarch64: Provide the maximum supported IPA size as the machine type 2021-11-01 14:24:27 +00:00
integration_tests crosvm: switch to upstream tempfile crate 2021-10-11 18:35:55 +00:00
kernel_cmdline kernel_cmdline: convert to ThisError and sort 2021-09-02 21:00:23 +00:00
kernel_loader Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
kvm aarch64: Provide the maximum supported IPA size as the machine type 2021-11-01 14:24:27 +00:00
kvm_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
libcras_stub Integrate audio_streams into crosvm, add stub libcras implementation 2021-07-29 05:59:42 +00:00
libcrosvm_control Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
libvda Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
linux_input_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
logo README: Use PNG logo image 2021-10-29 01:56:23 +00:00
net_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
net_util Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
power_monitor Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
protos Remove trunks proto from crosvm build 2021-07-31 03:01:21 +00:00
qcow_utils Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
resources Reland "Devices: Allocate non pci bar mmio at top of HighMmio" 2021-11-02 22:08:54 +00:00
rutabaga_gfx rutabaga_gfx: export rutabaga 2021-11-02 15:53:02 +00:00
seccomp wl: add support for host fences 2021-11-04 01:24:37 +00:00
src vm-memory: mlock2(MLOCK_ONFAULT) guest memory for protected VMs 2021-11-09 18:59:20 +00:00
system_api_stub system_api_stub: use 2018 edition of Rust 2021-09-09 06:42:46 +00:00
tests tests/plugins: replace rand_ish use with a counter 2021-07-21 23:28:27 +00:00
third_party vmm_vhost: vhost_user: Split socket listener code into separate file 2021-11-10 08:42:18 +00:00
tools third_party/vmm_vhost: Add vmm_vhost code into /third_party/ 2021-11-10 08:42:11 +00:00
tpm2 crosvm: add license blurb to all files 2019-04-24 15:51:38 -07:00
tpm2-sys Uprev all submodules 2021-10-19 19:12:53 +00:00
usb_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
usb_util Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
vfio_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
vhost Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
virtio_sys Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
vm_control Refactoring: Move various general purpose crates to common/ 2021-10-29 22:31:43 +00:00
vm_memory vm-memory: mlock2(MLOCK_ONFAULT) guest memory for protected VMs 2021-11-09 18:59:20 +00:00
x86_64 linux.rs: replace Error enum with anyhow 2021-11-05 23:06:09 +00:00
.dockerignore add docker supported builds and tests 2019-05-15 13:36:19 -07:00
.gitignore Add test runner ./tools/run_tests 2021-10-15 22:12:03 +00:00
.gitmodules Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
.rustfmt.toml rustfmt.toml: Use 2018 edition 2021-02-10 11:54:06 +00:00
ARCHITECTURE.md ARCHITECTURE: Update code map 2021-09-30 11:44:32 +00:00
Cargo.toml third_party/vmm_vhost: Add vmm_vhost code into /third_party/ 2021-11-10 08:42:11 +00:00
CONTRIBUTING.md CONTRIBUTING: Add more instruction on use of mdbook command 2021-11-01 15:32:26 +00:00
LICENSE add LICENSE and README 2017-04-17 14:06:21 -07:00
navbar.md navbar: Update navbar contents 2021-10-29 01:56:24 +00:00
OWNERS OWNERS: Remove tjeznach 2021-10-26 16:58:37 +00:00
README.md crosvm: Sprinkle notes on API search. 2021-11-08 07:21:20 +00:00
run_tests Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
rust-toolchain Uprev to rust 1.55.0 2021-10-19 19:12:52 +00:00
setup_cros_cargo.sh Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
test_all Deprecate old dev tooling scripts 2021-11-02 22:23:03 +00:00
unblocked_terms.txt unblocked_terms.txt: clean up trivial cases 2021-04-26 20:32:38 +00:00

crosvm - The Chrome OS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linuxs KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the Chrome OS platform. Compared to QEMU, crosvm doesnt emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on Chrome OS devices.

Logo