@@ -463,13 +463,8 @@ impl BackingPrivate for SnpBacked {
463
463
. set_vp_registers_hvcall ( Vtl :: Vtl0 , values)
464
464
. expect ( "set_vp_registers hypercall for direct overlays should succeed" ) ;
465
465
466
- let offload = if this. shared . secure_avic {
467
- false // TODO: FLIP THIS
468
- } else {
469
- false
470
- } ;
471
-
472
466
// Enable APIC offload if supported for VTL 0.
467
+ let offload = this. shared . secure_avic ;
473
468
this. set_apic_offload ( GuestVtl :: Vtl0 , offload) ;
474
469
if offload {
475
470
this. backing . cvm . lapics [ GuestVtl :: Vtl0 ]
@@ -638,7 +633,7 @@ impl BackingPrivate for SnpBacked {
638
633
impl UhProcessor < ' _ , SnpBacked > {
639
634
fn set_apic_offload ( & mut self , vtl : GuestVtl , offload : bool ) {
640
635
assert ! ( vtl == GuestVtl :: Vtl0 ) ;
641
- tracing:: debug !( offload, "Setting APIC offload" ) ;
636
+ tracing:: info !( offload, "Setting APIC offload" ) ;
642
637
// Share the common architectural parts with TDX.
643
638
if offload {
644
639
// TODO: Load the emulated state into the hardware.
@@ -1110,6 +1105,10 @@ impl UhProcessor<'_, SnpBacked> {
1110
1105
msr : u32 ,
1111
1106
is_write : bool ,
1112
1107
) {
1108
+ if msr == x86defs:: X86X_AMD_MSR_SECURE_AVIC_CONTROL {
1109
+ unimplemented ! ( "secure avic msr access" ) ;
1110
+ }
1111
+
1113
1112
if is_write && self . cvm_try_protect_msr_write ( entered_from_vtl, msr) {
1114
1113
return ;
1115
1114
}
@@ -1394,8 +1393,6 @@ impl UhProcessor<'_, SnpBacked> {
1394
1393
} else {
1395
1394
& mut self . backing . exit_stats [ entered_from_vtl] . msr_read
1396
1395
}
1397
-
1398
- // TODO: HAndle Secure AVIC MSR access?
1399
1396
}
1400
1397
1401
1398
SevExitCode :: IOIO => {
0 commit comments