arch, vmm: Fix riscv64 build gaps

Several riscv64 paths are compiled by the KVM build but missed
imports or cfg coverage needed by the current code.

Import the vm-memory Bytes trait for the RISC-V UEFI loader, keep
Instant available for migration timing code, and enable the UEFI flash
error path for riscv64.

Assisted-by: OpenAI-Codex:GPT-5

Signed-off-by: wangyf0611 <wangyufeng@iscas.ac.cn>
This commit is contained in:
wangyf0611
2026-05-21 15:48:33 +08:00
committed by Rob Bradford
parent 7d1321515c
commit 1e18716fbd
3 changed files with 4 additions and 6 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ use std::os::fd::AsFd;
use std::result; use std::result;
use thiserror::Error; use thiserror::Error;
use vm_memory::{GuestAddress, GuestMemory}; use vm_memory::{Bytes, GuestAddress, GuestMemory};
/// Errors thrown while loading UEFI binary /// Errors thrown while loading UEFI binary
#[derive(Debug, Error)] #[derive(Debug, Error)]
+1 -3
View File
@@ -12,9 +12,7 @@ use std::panic::AssertUnwindSafe;
use std::path::PathBuf; use std::path::PathBuf;
use std::sync::mpsc::{Receiver, RecvError, SendError, Sender}; use std::sync::mpsc::{Receiver, RecvError, SendError, Sender};
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
use std::time::Duration; use std::time::{Duration, Instant};
#[cfg(not(target_arch = "riscv64"))]
use std::time::Instant;
use std::{io, result, thread}; use std::{io, result, thread};
use anyhow::{Context, anyhow}; use anyhow::{Context, anyhow};
+2 -2
View File
@@ -24,7 +24,7 @@ use anyhow::anyhow;
use arch::RegionType; use arch::RegionType;
#[cfg(target_arch = "x86_64")] #[cfg(target_arch = "x86_64")]
use devices::ioapic; use devices::ioapic;
#[cfg(target_arch = "aarch64")] #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))]
use hypervisor::HypervisorVmError; use hypervisor::HypervisorVmError;
use libc::_SC_NPROCESSORS_ONLN; use libc::_SC_NPROCESSORS_ONLN;
use log::{debug, error, info, warn}; use log::{debug, error, info, warn};
@@ -445,7 +445,7 @@ pub enum Error {
#[error("Failed to allocate MMIO address")] #[error("Failed to allocate MMIO address")]
AllocateMmioAddress, AllocateMmioAddress,
#[cfg(target_arch = "aarch64")] #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))]
/// Failed to create UEFI flash /// Failed to create UEFI flash
#[error("Failed to create UEFI flash")] #[error("Failed to create UEFI flash")]
CreateUefiFlash(#[source] HypervisorVmError), CreateUefiFlash(#[source] HypervisorVmError),