@@ -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 {
5149KernelFile , 
5250    /// Cannot load kernel due to invalid memory configuration or invalid kernel image: {0} 
5351KernelLoader ( 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} 
5755VcpuConfigure ( KvmVcpuError ) , 
58-     /// Error reading vcpu registers: {0} 
59- VcpuGetRegs ( VcpuArchError ) , 
6056    /// Error applying vcpu template: {0} 
6157VcpuApplyTemplate ( 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