Skip to content

Commit 1f63b4a

Browse files
authored
virt_mshv_vtl: Don't try to update proxy_irr when VTL 1 touches its synic (#1275)
Fixes a VSM regression introduced by #1207.
1 parent cd7d0f7 commit 1f63b4a

File tree

1 file changed

+6
-5
lines changed
  • openhcl/virt_mshv_vtl/src/processor/hardware_cvm

1 file changed

+6
-5
lines changed

openhcl/virt_mshv_vtl/src/processor/hardware_cvm/mod.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1510,11 +1510,12 @@ impl<B: HardwareIsolatedBacking> UhProcessor<'_, B> {
15101510
};
15111511
let r = hv.msr_write(msr, value, &mut access);
15121512

1513-
if !matches!(r, Err(MsrError::Unknown)) {
1514-
// If updated is Synic MSR, then update the `proxy_irr_blocked`
1515-
if matches!(msr, hvdef::HV_X64_MSR_SINT0..=hvdef::HV_X64_MSR_SINT15) {
1516-
self.update_proxy_irr_filter(vtl);
1517-
}
1513+
// If the MSR is a synic MSR, then update the `proxy_irr_blocked`
1514+
if vtl == GuestVtl::Vtl0
1515+
&& !matches!(r, Err(MsrError::Unknown))
1516+
&& matches!(msr, hvdef::HV_X64_MSR_SINT0..=hvdef::HV_X64_MSR_SINT15)
1517+
{
1518+
self.update_proxy_irr_filter(vtl);
15181519
}
15191520
r
15201521
}

0 commit comments

Comments
 (0)