pci_bridge: make prefetch window failure non-fatal

This will allow us to set up a memory layout where the high MMIO region
is empty.

BUG=b:178000549
TEST=crosvm run --no-high-mmio

Change-Id: I21dd76fdb77774e7f5bbfbf7cea06422bf437291
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3790032
Reviewed-by: David Stevens <stevensd@chromium.org>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Tested-by: Daniel Verkamp <dverkamp@chromium.org>
This commit is contained in:
Daniel Verkamp 2022-07-21 16:17:53 -07:00 committed by crosvm LUCI
parent e2d9a91bea
commit 0fb4cb0baf

View file

@ -446,7 +446,8 @@ impl PciDevice for PciBridge {
)?;
window_base = window.0;
window_size = window.1;
let pref_window = finalize_window(
match finalize_window(
resources,
true, // prefetchable
Alloc::PciBridgePrefetchWindow {
@ -456,9 +457,15 @@ impl PciDevice for PciBridge {
},
pref_window_base,
pref_window_size,
)?;
pref_window_base = pref_window.0;
pref_window_size = pref_window.1;
) {
Ok(pref_window) => {
pref_window_base = pref_window.0;
pref_window_size = pref_window.1;
}
Err(e) => {
warn!("failed to allocate PCI bridge prefetchable window: {}", e);
}
}
} else {
// 0 is Ok here because guest will relocate the bridge window
if window_size > 0 {