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),
|
Create(#[source] std::io::Error),
|
||||||
|
|
||||||
#[error("Cannot translate GPA {gpa:#x} to host address")]
|
#[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}")]
|
#[error("Failed to register region at {addr:#x}+{len:#x}")]
|
||||||
Register {
|
Register {
|
||||||
|
|||||||
@@ -996,8 +996,10 @@ impl MemoryManager {
|
|||||||
for range in saved_regions.regions() {
|
for range in saved_regions.regions() {
|
||||||
let host_addr = guest_memory
|
let host_addr = guest_memory
|
||||||
.get_host_address(GuestAddress(range.gpa))
|
.get_host_address(GuestAddress(range.gpa))
|
||||||
.map_err(|_| UffdError::GpaTranslation { gpa: range.gpa })?
|
.map_err(|e| UffdError::GpaTranslation {
|
||||||
as u64;
|
gpa: range.gpa,
|
||||||
|
source: e,
|
||||||
|
})? as u64;
|
||||||
|
|
||||||
let ioctls = uffd::register(uffd_fd.as_fd(), host_addr, range.length).map_err(|e| {
|
let ioctls = uffd::register(uffd_fd.as_fd(), host_addr, range.length).map_err(|e| {
|
||||||
UffdError::Register {
|
UffdError::Register {
|
||||||
|
|||||||
Reference in New Issue
Block a user