@@ -53,7 +53,7 @@ use mshv_bindings::{
53
53
hv_register_name, hv_register_name_HV_X64_REGISTER_RAX, hv_register_name_HV_X64_REGISTER_RBP,
54
54
hv_register_name_HV_X64_REGISTER_RCX, hv_register_name_HV_X64_REGISTER_RSP,
55
55
} ;
56
- use mshv_ioctls:: { Mshv , MshvError , VcpuFd , VmFd } ;
56
+ use mshv_ioctls:: { Mshv , VcpuFd , VmFd } ;
57
57
use tracing:: { Span , instrument} ;
58
58
#[ cfg( crashdump) ]
59
59
use { super :: crashdump, std:: path:: Path } ;
@@ -794,9 +794,7 @@ impl Hypervisor for HypervLinuxDriver {
794
794
. load ( Ordering :: Relaxed )
795
795
|| debug_interrupt
796
796
{
797
- Err ( MshvError :: Errno ( vmm_sys_util:: errno:: Error :: new (
798
- libc:: EINTR ,
799
- ) ) )
797
+ Err ( mshv_ioctls:: MshvError :: from ( libc:: EINTR ) )
800
798
} else {
801
799
#[ cfg( feature = "trace_guest" ) ]
802
800
if self . trace_info . guest_start_epoch . is_none ( ) {
@@ -847,7 +845,7 @@ impl Hypervisor for HypervLinuxDriver {
847
845
HyperlightExit :: Halt ( )
848
846
}
849
847
IO_PORT_INTERCEPT_MESSAGE => {
850
- let io_message = m. to_ioport_info ( ) ?;
848
+ let io_message = m. to_ioport_info ( ) . map_err ( mshv_ioctls :: MshvError :: from ) ?;
851
849
let port_number = io_message. port_number ;
852
850
let rip = io_message. header . rip ;
853
851
let rax = io_message. rax ;
@@ -861,7 +859,7 @@ impl Hypervisor for HypervLinuxDriver {
861
859
)
862
860
}
863
861
UNMAPPED_GPA_MESSAGE => {
864
- let mimo_message = m. to_memory_info ( ) ?;
862
+ let mimo_message = m. to_memory_info ( ) . map_err ( mshv_ioctls :: MshvError :: from ) ?;
865
863
let addr = mimo_message. guest_physical_address ;
866
864
crate :: debug!(
867
865
"mshv MMIO unmapped GPA -Details: Address: {} \n {:#?}" ,
@@ -871,7 +869,7 @@ impl Hypervisor for HypervLinuxDriver {
871
869
HyperlightExit :: Mmio ( addr)
872
870
}
873
871
INVALID_GPA_ACCESS_MESSAGE => {
874
- let mimo_message = m. to_memory_info ( ) ?;
872
+ let mimo_message = m. to_memory_info ( ) . map_err ( mshv_ioctls :: MshvError :: from ) ?;
875
873
let gpa = mimo_message. guest_physical_address ;
876
874
let access_info = MemoryRegionFlags :: try_from ( mimo_message) ?;
877
875
crate :: debug!(
@@ -896,7 +894,8 @@ impl Hypervisor for HypervLinuxDriver {
896
894
EXCEPTION_INTERCEPT => {
897
895
// Extract exception info from the message so we can figure out
898
896
// more information about the vCPU state
899
- let ex_info = match m. to_exception_info ( ) {
897
+ let ex_info = match m. to_exception_info ( ) . map_err ( mshv_ioctls:: MshvError :: from)
898
+ {
900
899
Ok ( info) => info,
901
900
Err ( e) => {
902
901
log_then_return ! ( "Error converting to exception info: {:?}" , e) ;
0 commit comments