diff --git a/devices/src/ioapic.rs b/devices/src/ioapic.rs index e4c4c7f44..3387981e8 100644 --- a/devices/src/ioapic.rs +++ b/devices/src/ioapic.rs @@ -23,10 +23,6 @@ use vm_memory::GuestAddress; use vm_migration::{Migratable, MigratableError, Pausable, Snapshot, Snapshottable, Transportable}; use vmm_sys_util::eventfd::EventFd; -#[derive(Serialize, Deserialize)] -#[serde(remote = "GuestAddress")] -pub struct GuestAddressDef(pub u64); - type Result = result::Result; // I/O REDIRECTION TABLE REGISTER @@ -143,8 +139,7 @@ pub struct IoapicState { reg_sel: u32, reg_entries: [RedirectionTableEntry; NUM_IOAPIC_PINS], used_entries: [bool; NUM_IOAPIC_PINS], - #[serde(with = "GuestAddressDef")] - apic_address: GuestAddress, + apic_address: u64, } impl BusDevice for Ioapic { @@ -281,7 +276,7 @@ impl Ioapic { reg_sel: self.reg_sel, reg_entries: self.reg_entries, used_entries: self.used_entries, - apic_address: self.apic_address, + apic_address: self.apic_address.0, } } @@ -290,7 +285,7 @@ impl Ioapic { self.reg_sel = state.reg_sel; self.reg_entries = state.reg_entries; self.used_entries = state.used_entries; - self.apic_address = state.apic_address; + self.apic_address = GuestAddress(state.apic_address); for (irq, entry) in self.used_entries.iter().enumerate() { if *entry { self.update_entry(irq)?; diff --git a/devices/src/legacy/serial.rs b/devices/src/legacy/serial.rs index 904165cd9..2b10edb98 100644 --- a/devices/src/legacy/serial.rs +++ b/devices/src/legacy/serial.rs @@ -80,7 +80,7 @@ pub struct SerialState { modem_status: u8, scratch: u8, baud_divisor: u16, - in_buffer: VecDeque, + in_buffer: Vec, } impl Serial { @@ -223,7 +223,7 @@ impl Serial { modem_status: self.modem_status, scratch: self.scratch, baud_divisor: self.baud_divisor, - in_buffer: self.in_buffer.clone(), + in_buffer: self.in_buffer.clone().into(), } } @@ -236,7 +236,7 @@ impl Serial { self.modem_status = state.modem_status; self.scratch = state.scratch; self.baud_divisor = state.baud_divisor; - self.in_buffer = state.in_buffer.clone(); + self.in_buffer = state.in_buffer.clone().into(); } } diff --git a/devices/src/legacy/uart_pl011.rs b/devices/src/legacy/uart_pl011.rs index 1ae9f86ea..c43cfe11a 100644 --- a/devices/src/legacy/uart_pl011.rs +++ b/devices/src/legacy/uart_pl011.rs @@ -95,7 +95,7 @@ pub struct Pl011State { dmacr: u32, int_enabled: u32, int_level: u32, - read_fifo: VecDeque, + read_fifo: Vec, ilpr: u32, ibrd: u32, fbrd: u32, @@ -141,7 +141,7 @@ impl Pl011 { dmacr: self.dmacr, int_enabled: self.int_enabled, int_level: self.int_level, - read_fifo: self.read_fifo.clone(), + read_fifo: self.read_fifo.clone().into(), ilpr: self.ilpr, ibrd: self.ibrd, fbrd: self.fbrd, @@ -159,7 +159,7 @@ impl Pl011 { self.dmacr = state.dmacr; self.int_enabled = state.int_enabled; self.int_level = state.int_level; - self.read_fifo = state.read_fifo.clone(); + self.read_fifo = state.read_fifo.clone().into(); self.ilpr = state.ilpr; self.ibrd = state.ibrd; self.fbrd = state.fbrd;