mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-06 02:25:23 +00:00
pcie: Fix bridge window's mmio alignment
Bridge window's mmio alignment went wrong during our refactor, fix it in this commit. BUG=b:185084350 TEST=Check bridge window and pci device mmio setting in CrOS Change-Id: Ia1a01d1740f943ec7aa36812defe3aabffcfcbde Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3498219 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
This commit is contained in:
parent
e1042a1098
commit
edc7ad4091
1 changed files with 7 additions and 4 deletions
|
@ -443,7 +443,7 @@ impl PciDevice for PciBridge {
|
|||
}
|
||||
// align window_size to 1MB
|
||||
if window_size & (BR_WINDOW_ALIGNMENT - 1) != 0 {
|
||||
window_size = (window_size + BR_WINDOW_ALIGNMENT - 1) & BR_WINDOW_ALIGNMENT;
|
||||
window_size = (window_size + BR_WINDOW_ALIGNMENT - 1) & (!(BR_WINDOW_ALIGNMENT - 1));
|
||||
}
|
||||
// if window_base isn't set, allocate a new one
|
||||
if window_base == u64::MAX {
|
||||
|
@ -467,7 +467,8 @@ impl PciDevice for PciBridge {
|
|||
} else {
|
||||
// align window_base to 1MB
|
||||
if window_base & (BR_WINDOW_ALIGNMENT - 1) != 0 {
|
||||
window_base = (window_base + BR_WINDOW_ALIGNMENT - 1) & BR_WINDOW_ALIGNMENT;
|
||||
window_base =
|
||||
(window_base + BR_WINDOW_ALIGNMENT - 1) & (!(BR_WINDOW_ALIGNMENT - 1));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -477,7 +478,8 @@ impl PciDevice for PciBridge {
|
|||
}
|
||||
// align pref_window_size to 1MB
|
||||
if pref_window_size & (BR_WINDOW_ALIGNMENT - 1) != 0 {
|
||||
pref_window_size = (pref_window_size + BR_WINDOW_ALIGNMENT - 1) & BR_WINDOW_ALIGNMENT;
|
||||
pref_window_size =
|
||||
(pref_window_size + BR_WINDOW_ALIGNMENT - 1) & (!(BR_WINDOW_ALIGNMENT - 1));
|
||||
}
|
||||
// if pref_window_base isn't set, allocate a new one
|
||||
if pref_window_base == u64::MAX {
|
||||
|
@ -503,7 +505,8 @@ impl PciDevice for PciBridge {
|
|||
} else {
|
||||
// align pref_window_base to 1MB
|
||||
if pref_window_base & (BR_WINDOW_ALIGNMENT - 1) != 0 {
|
||||
pref_window_base = (window_base + BR_WINDOW_ALIGNMENT - 1) & BR_WINDOW_ALIGNMENT;
|
||||
pref_window_base =
|
||||
(window_base + BR_WINDOW_ALIGNMENT - 1) & (!(BR_WINDOW_ALIGNMENT - 1));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue