mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
vm-migration: preserve error chain
On-behalf-of: SAP philipp.schuster@sap.com Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de>
This commit is contained in:
committed by
Rob Bradford
parent
b4c37def26
commit
85109ebae0
@@ -26,7 +26,11 @@ pub enum UffdError {
|
||||
Create(#[source] std::io::Error),
|
||||
|
||||
#[error("Cannot translate GPA {gpa:#x} to host address")]
|
||||
GpaTranslation { gpa: u64 },
|
||||
GpaTranslation {
|
||||
gpa: u64,
|
||||
#[source]
|
||||
source: vm_memory::GuestMemoryError,
|
||||
},
|
||||
|
||||
#[error("Failed to register region at {addr:#x}+{len:#x}")]
|
||||
Register {
|
||||
|
||||
@@ -996,8 +996,10 @@ impl MemoryManager {
|
||||
for range in saved_regions.regions() {
|
||||
let host_addr = guest_memory
|
||||
.get_host_address(GuestAddress(range.gpa))
|
||||
.map_err(|_| UffdError::GpaTranslation { gpa: range.gpa })?
|
||||
as u64;
|
||||
.map_err(|e| UffdError::GpaTranslation {
|
||||
gpa: range.gpa,
|
||||
source: e,
|
||||
})? as u64;
|
||||
|
||||
let ioctls = uffd::register(uffd_fd.as_fd(), host_addr, range.length).map_err(|e| {
|
||||
UffdError::Register {
|
||||
|
||||
Reference in New Issue
Block a user