@@ -6,8 +6,11 @@ use std::{
6
6
use crate :: vstate:: MeasuredRegion ;
7
7
use arch:: x86_64:: layout:: * ;
8
8
9
- use sev:: firmware:: { guest:: GuestPolicy , host:: Firmware } ;
10
- use sev:: launch:: snp:: * ;
9
+ use sev:: {
10
+ error:: FirmwareError ,
11
+ firmware:: { guest:: GuestPolicy , host:: Firmware } ,
12
+ launch:: snp:: * ,
13
+ } ;
11
14
12
15
use kvm_bindings:: { kvm_enc_region, CpuId , KVM_CPUID_FLAG_SIGNIFCANT_INDEX } ;
13
16
use kvm_ioctls:: VmFd ;
@@ -19,12 +22,12 @@ use vm_memory::{
19
22
pub enum Error {
20
23
CpuIdWrite ,
21
24
CpuIdFull ,
22
- CreateLauncher ( std :: io :: Error ) ,
25
+ CreateLauncher ( FirmwareError ) ,
23
26
GuestMemoryWrite ( vm_memory:: GuestMemoryError ) ,
24
27
GuestMemoryRead ( vm_memory:: GuestMemoryError ) ,
25
- LaunchStart ( std :: io :: Error ) ,
26
- LaunchUpdate ( std :: io :: Error ) ,
27
- LaunchFinish ( std :: io :: Error ) ,
28
+ LaunchStart ( FirmwareError ) ,
29
+ LaunchUpdate ( FirmwareError ) ,
30
+ LaunchFinish ( FirmwareError ) ,
28
31
MemoryEncryptRegion ,
29
32
OpenFirmware ( std:: io:: Error ) ,
30
33
}
@@ -105,9 +108,9 @@ impl AmdSnp {
105
108
}
106
109
107
110
let mut policy = GuestPolicy ( 0 ) ;
108
- policy. set_smt_allowed ( 1 ) ;
111
+ policy. set_smt_allowed ( true ) ;
109
112
110
- let start = Start :: new ( None , policy, false , [ 0 ; 16 ] ) ;
113
+ let start = Start :: new ( policy, [ 0 ; 16 ] ) ;
111
114
112
115
let launcher = launcher. start ( start) . map_err ( Error :: LaunchStart ) ?;
113
116
@@ -281,7 +284,6 @@ impl AmdSnp {
281
284
launcher : & mut Launcher < Started , RawFd , RawFd > ,
282
285
page_type : PageType ,
283
286
) -> Result < ( ) , Error > {
284
- let dp = VmplPerms :: empty ( ) ;
285
287
let ga = GuestAddress ( region. guest_addr ) ;
286
288
287
289
/*
@@ -296,15 +298,11 @@ impl AmdSnp {
296
298
let ptr = bytes. ptr_guard ( ) . as_ptr ( ) ;
297
299
let slice: & [ u8 ] = unsafe { slice:: from_raw_parts ( ptr, region. size ) } ;
298
300
299
- let update = Update :: new (
300
- region. guest_addr >> 12 ,
301
- slice,
302
- false ,
303
- page_type,
304
- ( dp, dp, dp) ,
305
- ) ;
301
+ let update = Update :: new ( region. guest_addr >> 12 , slice, page_type) ;
306
302
307
- launcher. update_data ( update) . map_err ( Error :: LaunchUpdate )
303
+ launcher
304
+ . update_data ( update, region. guest_addr , region. size as u64 )
305
+ . map_err ( Error :: LaunchUpdate )
308
306
}
309
307
310
308
pub fn vm_measure (
0 commit comments