mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-05 18:20:34 +00:00
devices: virtio: iommu: assign a sensible default value to page_size_mask
Assign a sensible default value to page_size_mask and reject the empty page_size_mask case. BUG=b:185084350 TEST=Boot a crosvm guest with vIOMMU enabled Change-Id: Id711c9ff25265f707618a58eb212fd5ca16383e8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3580372 Reviewed-by: David Stevens <stevensd@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org> Commit-Queue: David Stevens <stevensd@chromium.org>
This commit is contained in:
parent
b5a2771f6c
commit
349247860c
1 changed files with 2 additions and 4 deletions
|
@ -753,7 +753,7 @@ impl Iommu {
|
|||
translate_request_rx: Option<Tube>,
|
||||
iommu_device_tube: Option<Tube>,
|
||||
) -> SysResult<Iommu> {
|
||||
let mut page_size_mask = !0_u64;
|
||||
let mut page_size_mask = !((pagesize() as u64) - 1);
|
||||
for (_, container) in endpoints.iter() {
|
||||
page_size_mask &= container
|
||||
.lock()
|
||||
|
@ -762,9 +762,7 @@ impl Iommu {
|
|||
}
|
||||
|
||||
if page_size_mask == 0 {
|
||||
// In case no endpoints bounded to vIOMMU during system booting,
|
||||
// assume IOVA page size is the same as page_size
|
||||
page_size_mask = (pagesize() as u64) - 1;
|
||||
return Err(SysError::new(libc::EIO));
|
||||
}
|
||||
|
||||
let input_range = virtio_iommu_range_64 {
|
||||
|
|
Loading…
Reference in a new issue