summary refs log tree commit diff
path: root/devices
diff options
context:
space:
mode:
authorChuanxiao Dong <chuanxiao.dong@intel.corp-partner.google.com>2019-11-12 13:28:46 +0800
committerCommit Bot <commit-bot@chromium.org>2019-11-18 03:46:37 +0000
commit917b90e2a38a0ab1f105aec73a263b54e1e45742 (patch)
tree421dc88e9135378d6c2332b76e80c4a6894679a1 /devices
parent8ec87d6d334126f0a3c235e19470f707dc5f02e4 (diff)
downloadcrosvm-917b90e2a38a0ab1f105aec73a263b54e1e45742.tar
crosvm-917b90e2a38a0ab1f105aec73a263b54e1e45742.tar.gz
crosvm-917b90e2a38a0ab1f105aec73a263b54e1e45742.tar.bz2
crosvm-917b90e2a38a0ab1f105aec73a263b54e1e45742.tar.lz
crosvm-917b90e2a38a0ab1f105aec73a263b54e1e45742.tar.xz
crosvm-917b90e2a38a0ab1f105aec73a263b54e1e45742.tar.zst
crosvm-917b90e2a38a0ab1f105aec73a263b54e1e45742.zip
devices: update the msix route table regardless msix mask status
The msix entries might be changed by guest during msix maksed. The
current implementation won't update the MSIX route table in this case
which can cause KVM still inject the IRQ according to the old routing.

To fix this, we should update the msix route regardless the msix mask
status.

BUG=chromium:1023692
TEST=cargo test -p devices

Change-Id: Ifa356b3834ff454ecfca1dbdd97a7ca940d1f2b6
Signed-off-by: Chuanxiao Dong <chuanxiao.dong@intel.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1911721
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Zide Chen <zide.chen@intel.corp-partner.google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'devices')
-rw-r--r--devices/src/pci/msix.rs1
1 files changed, 0 insertions, 1 deletions
diff --git a/devices/src/pci/msix.rs b/devices/src/pci/msix.rs
index 368f8b7..eab4398 100644
--- a/devices/src/pci/msix.rs
+++ b/devices/src/pci/msix.rs
@@ -294,7 +294,6 @@ impl MsixConfig {
 
         let new_entry = self.table_entries[index].clone();
         if self.enabled()
-            && !self.masked()
             && (old_entry.msg_addr_lo != new_entry.msg_addr_lo
                 || old_entry.msg_addr_hi != new_entry.msg_addr_hi
                 || old_entry.msg_data != new_entry.msg_data)