@@ -27,8 +27,6 @@ use linux_loader::loader::{Cmdline, KernelLoader};
2727use vm_memory:: GuestMemoryError ;
2828
2929use self :: gic:: GICDevice ;
30- use crate :: arch:: aarch64:: regs:: Aarch64RegisterVec ;
31- use crate :: arch:: aarch64:: vcpu:: { VcpuArchError , get_registers} ;
3230use crate :: arch:: { BootProtocol , DeviceType , EntryPoint } ;
3331use crate :: cpu_config:: aarch64:: { CpuConfiguration , CpuConfigurationError } ;
3432use crate :: cpu_config:: templates:: CustomCpuTemplate ;
@@ -51,12 +49,10 @@ pub enum ConfigurationError {
5149 KernelFile ,
5250 /// Cannot load kernel due to invalid memory configuration or invalid kernel image: {0}
5351 KernelLoader ( linux_loader:: loader:: Error ) ,
54- /// Error initializing the vcpu: {0}
55- VcpuInit ( KvmVcpuError ) ,
52+ /// Error creating vcpu configuration : {0}
53+ VcpuConfig ( CpuConfigurationError ) ,
5654 /// Error configuring the vcpu: {0}
5755 VcpuConfigure ( KvmVcpuError ) ,
58- /// Error reading vcpu registers: {0}
59- VcpuGetRegs ( VcpuArchError ) ,
6056 /// Error applying vcpu template: {0}
6157 VcpuApplyTemplate ( CpuConfigurationError ) ,
6258}
@@ -84,18 +80,8 @@ pub fn configure_system_for_boot(
8480 boot_cmdline : Cmdline ,
8581) -> Result < ( ) , ConfigurationError > {
8682 // Construct the base CpuConfiguration to apply CPU template onto.
87- let cpu_config = {
88- for vcpu in vcpus. iter_mut ( ) {
89- vcpu. kvm_vcpu
90- . init ( & cpu_template. vcpu_features )
91- . map_err ( ConfigurationError :: VcpuInit ) ?;
92- }
93-
94- let mut regs = Aarch64RegisterVec :: default ( ) ;
95- get_registers ( & vcpus[ 0 ] . kvm_vcpu . fd , & cpu_template. reg_list ( ) , & mut regs)
96- . map_err ( ConfigurationError :: VcpuGetRegs ) ?;
97- CpuConfiguration { regs }
98- } ;
83+ let cpu_config =
84+ CpuConfiguration :: new ( cpu_template, vcpus) . map_err ( ConfigurationError :: VcpuConfig ) ?;
9985
10086 // Apply CPU template to the base CpuConfiguration.
10187 let cpu_config = CpuConfiguration :: apply_template ( cpu_config, cpu_template)
0 commit comments