Skip to content

Commit 03a3ade

Browse files
committed
chore(ci): fix fmt, lockfile and clippy warnings
Signed-off-by: Zewei Yang <yangzewei@loongson.cn>
1 parent c6d3842 commit 03a3ade

12 files changed

Lines changed: 294 additions & 209 deletions

File tree

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/arch/src/loongarch64/linux/iocsr.rs

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
1+
use log::debug;
2+
use std::sync::atomic::{AtomicU64, Ordering};
13
/// LoongArch IOCSR Mailbox and Control Registers
24
///
35
/// This module provides emulation for LoongArch IOCSR (I/O Control and Status Register)
46
/// mailbox system used for inter-processor communication.
5-
67
use std::sync::Arc;
7-
use std::sync::atomic::{AtomicU64, Ordering};
8-
use log::debug;
98

109
/// Maximum Number of LoongArch vCpus supported
11-
const MAX_LOONGARCH_VCPUS: usize = 16;
10+
const MAX_LOONGARCH_VCPUS: usize = 16;
1211

1312
/// IOCSR Mailbox addresses (each 8 bytes apart)
1413
pub const LOONGARCH_IOCSR_MBUF0: u64 = 0x1020;
1514
pub const LOONGARCH_IOCSR_MBUF1: u64 = 0x1028;
1615
pub const LOONGARCH_IOCSR_MBUF2: u64 = 0x1030;
1716
pub const LOONGARCH_IOCSR_MBUF3: u64 = 0x1038;
1817

19-
2018
/// IOCSR Mailbox send command register
2119
pub const LOONGARCH_IOCSR_MBUF_SEND: u64 = 0x1048;
2220

@@ -61,12 +59,14 @@ impl LoongArchIocsrState {
6159
Self {
6260
misc_func: AtomicU64::new(0),
6361
mailboxes: (0..count)
64-
.map(|_| [
65-
AtomicU64::new(0),
66-
AtomicU64::new(0),
67-
AtomicU64::new(0),
68-
AtomicU64::new(0),
69-
])
62+
.map(|_| {
63+
[
64+
AtomicU64::new(0),
65+
AtomicU64::new(0),
66+
AtomicU64::new(0),
67+
AtomicU64::new(0),
68+
]
69+
})
7070
.collect(),
7171
}
7272
}
@@ -119,7 +119,11 @@ impl LoongArchIocsrState {
119119
let data32 = ((value >> IOCSR_MBUF_SEND_BUF_SHIFT) & 0xFFFFFFFF) as u32;
120120
// Validate target CPU
121121
if target_cpu >= self.mailboxes.len() {
122-
return Err(format!("Invalid target CPU: {} (max: {})", target_cpu, self.mailboxes.len() - 1));
122+
return Err(format!(
123+
"Invalid target CPU: {} (max: {})",
124+
target_cpu,
125+
self.mailboxes.len() - 1
126+
));
123127
}
124128
// Validate mailbox number
125129
if box_num >= 4 {
@@ -168,7 +172,8 @@ pub fn process_iocsr_read(
168172
addr: u64,
169173
data: &mut [u8],
170174
iocsr_state: &Arc<LoongArchIocsrState>,
171-
cpu_id: u8) -> IocsrReadResult {
175+
cpu_id: u8,
176+
) -> IocsrReadResult {
172177
match (addr, data.len()) {
173178
(LOONGARCH_IOCSR_FEATURES, 4) => {
174179
// Feature flags: EXTIOI, CSRIPI, VM support
@@ -208,7 +213,8 @@ pub fn process_iocsr_write(
208213
addr: u64,
209214
data: &[u8],
210215
iocsr_state: &Arc<LoongArchIocsrState>,
211-
cpu_id: u8) -> IocsrWriteResult {
216+
cpu_id: u8,
217+
) -> IocsrWriteResult {
212218
match (addr, data.len()) {
213219
(LOONGARCH_IOCSR_MISC_FUNC, 8) => {
214220
// Miscellaneous function register
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
pub mod efi;
2+
pub mod iocsr;
23
pub mod regs;
3-
pub mod iocsr;

src/arch/src/loongarch64/linux/regs.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ const CPUCFG3_KVM_CONSERVATIVE_MASK: u64 = 0x0000_fcff;
3131
const CPUCFG4_KVM_MASK: u64 = 0xffff_ffff;
3232
const CPUCFG5_KVM_MASK: u64 = 0xffff_ffff;
3333

34-
const CPUCFG16_CACHE_CONFIG: u64 = 0xF; // L1I, L1D, L2, L3 present
34+
const CPUCFG16_CACHE_CONFIG: u64 = 0xF; // L1I, L1D, L2, L3 present
3535
const CPUCFG17_L1I_MASK: u64 = ((5u64) << 24) | ((8u64) << 16) | ((4u64 - 1) << 0);
3636
const CPUCFG18_L1D_MASK: u64 = ((5u64) << 24) | ((8u64) << 16) | ((4u64 - 1) << 0);
3737
const CPUCFG19_L2_MASK: u64 = ((6u64) << 24) | ((9u64) << 16) | ((8u64 - 1) << 0);
@@ -94,11 +94,7 @@ pub fn setup_regs(
9494

9595
debug!(
9696
"loongarch setup_regs: cpu_id={}, pc=0x{:x}, a0={}, a1=0x{:x}, a2=0x{:x}",
97-
cpu_id,
98-
regs.pc,
99-
regs.gpr[4],
100-
regs.gpr[5],
101-
regs.gpr[6],
97+
cpu_id, regs.pc, regs.gpr[4], regs.gpr[5], regs.gpr[6],
10298
);
10399
let mut cpucfg0 = [0_u8; 8];
104100
if vcpu.get_one_reg(CPUCFG0_REG_ID, &mut cpucfg0).is_ok() {

src/devices/src/fdt/loongarch64.rs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,11 @@ fn create_chosen_node<T: DeviceInfoForFDT + Clone + Debug>(
143143
// Only set stdout-path if we have a Serial device (not when using Virtio Console).
144144
// When using Virtio Console (hvc0), kernel uses the console= cmdline parameter instead.
145145
// When using Serial (ttyS0), we point FDT to the serial device node.
146-
let has_serial = dev_info.keys().any(|(device_type, _)| device_type == &DeviceType::Serial);
147-
let has_virtio_console = dev_info.keys()
146+
let has_serial = dev_info
147+
.keys()
148+
.any(|(device_type, _)| device_type == &DeviceType::Serial);
149+
let has_virtio_console = dev_info
150+
.keys()
148151
.any(|(device_type, _)| matches!(device_type, DeviceType::Virtio(3))); // VIRTIO_ID_CONSOLE = 3
149152

150153
if has_serial && !has_virtio_console {
@@ -157,22 +160,22 @@ fn create_chosen_node<T: DeviceInfoForFDT + Clone + Debug>(
157160
}
158161
}
159162
let stdout_path = if has_serial && !has_virtio_console {
160-
dev_info.iter().find_map(|((device_type, _device_id), info)| {
161-
if device_type == &DeviceType::Serial {
162-
Some(format!("/serial@{:x}", info.addr()))
163-
} else {
164-
None
165-
}
166-
})
163+
dev_info
164+
.iter()
165+
.find_map(|((device_type, _device_id), info)| {
166+
if device_type == &DeviceType::Serial {
167+
Some(format!("/serial@{:x}", info.addr()))
168+
} else {
169+
None
170+
}
171+
})
167172
} else {
168173
None
169174
};
170175

171176
debug!(
172177
"loongarch chosen: has_serial={}, has_virtio_console={}, stdout_path={:?}",
173-
has_serial,
174-
has_virtio_console,
175-
stdout_path,
178+
has_serial, has_virtio_console, stdout_path,
176179
);
177180

178181
if let Some(path) = &stdout_path {

src/devices/src/legacy/kvmloongarchirqchip.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ use utils::eventfd::EventFd;
1111
use vmm_sys_util::ioctl::ioctl_with_ref;
1212
use vmm_sys_util::ioctl_iow_nr;
1313

14-
ioctl_iow_nr!(KVM_INTERRUPT_LOONGARCH, kvm_bindings::KVMIO, 0x86, kvm_interrupt);
14+
ioctl_iow_nr!(
15+
KVM_INTERRUPT_LOONGARCH,
16+
kvm_bindings::KVMIO,
17+
0x86,
18+
kvm_interrupt
19+
);
1520

1621
pub struct KvmLoongArchIrqChip {
1722
_ipi_fd: DeviceFd,
@@ -132,11 +137,7 @@ impl IrqChipT for KvmLoongArchIrqChip {
132137
}
133138
};
134139

135-
let signed_irq = if active {
136-
irq as i32
137-
} else {
138-
-(irq as i32)
139-
};
140+
let signed_irq = if active { irq as i32 } else { -(irq as i32) };
140141
let interrupt = kvm_interrupt {
141142
// KVM uapi exposes `irq` as u32, but LoongArch KVM casts it back to `int`
142143
// and uses the sign to distinguish assert vs deassert.

src/devices/src/legacy/loongarch64/serial.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,11 @@ impl Serial {
159159
if let Some(intc) = &self.intc {
160160
intc.lock()
161161
.unwrap()
162-
.set_irq_state(self.irq_line, Some(&self.interrupt_evt), self.interrupt_active())
162+
.set_irq_state(
163+
self.irq_line,
164+
Some(&self.interrupt_evt),
165+
self.interrupt_active(),
166+
)
163167
.map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{e:?}")))?;
164168
return Ok(());
165169
}

src/devices/src/virtio/mmio.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,11 @@ impl InterruptTransport {
140140
let _irq_sync = self.0.irq_sync.lock().unwrap();
141141
let old = self.status().fetch_or(status as usize, Ordering::SeqCst);
142142
if old == 0 {
143-
self.intc()
144-
.lock()
145-
.unwrap()
146-
.set_irq_state(self.0.irq_line, Some(&self.0.event), true)?;
143+
self.intc().lock().unwrap().set_irq_state(
144+
self.0.irq_line,
145+
Some(&self.0.event),
146+
true,
147+
)?;
147148
}
148149
return Ok(());
149150
}
@@ -511,12 +512,12 @@ impl BusDevice for MmioTransport {
511512
.fetch_and(!(v as usize), Ordering::SeqCst);
512513
let new = old & !(v as usize);
513514
if old != 0 && new == 0 {
514-
if let Err(e) = self
515-
.interrupt
516-
.intc()
517-
.lock()
518-
.unwrap()
519-
.set_irq_state(self.interrupt.0.irq_line, Some(&self.interrupt.0.event), false)
515+
if let Err(e) =
516+
self.interrupt.intc().lock().unwrap().set_irq_state(
517+
self.interrupt.0.irq_line,
518+
Some(&self.interrupt.0.event),
519+
false,
520+
)
520521
{
521522
warn!(target: &self.interrupt.0.log_target, "Failed to deassert irq: {e:?}");
522523
}

src/vmm/src/builder.rs

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ use crate::vmm_config::net::NetBuilder;
3333
use devices::legacy::Cmos;
3434
#[cfg(all(target_os = "linux", target_arch = "riscv64"))]
3535
use devices::legacy::KvmAia;
36-
#[cfg(all(target_os = "linux", target_arch = "loongarch64"))]
37-
use devices::legacy::KvmLoongArchIrqChip;
3836
#[cfg(target_arch = "x86_64")]
3937
use devices::legacy::KvmIoapic;
38+
#[cfg(all(target_os = "linux", target_arch = "loongarch64"))]
39+
use devices::legacy::KvmLoongArchIrqChip;
4040
use devices::legacy::Serial;
4141
#[cfg(target_os = "macos")]
4242
use devices::legacy::VcpuList;
@@ -521,7 +521,11 @@ impl Display for StartMicrovmError {
521521
pub enum Payload {
522522
#[cfg(all(target_arch = "x86_64", not(feature = "tee")))]
523523
KernelMmap,
524-
#[cfg(any(target_arch = "aarch64", target_arch = "riscv64", target_arch = "loongarch64"))]
524+
#[cfg(any(
525+
target_arch = "aarch64",
526+
target_arch = "riscv64",
527+
target_arch = "loongarch64"
528+
))]
525529
KernelCopy,
526530
ExternalKernel(ExternalKernel),
527531
#[cfg(test)]
@@ -544,7 +548,11 @@ fn choose_payload(vm_resources: &VmResources) -> Result<Payload, StartMicrovmErr
544548
#[cfg(all(target_os = "linux", target_arch = "x86_64", not(feature = "tee")))]
545549
return Ok(Payload::KernelMmap);
546550

547-
#[cfg(any(target_arch = "aarch64", target_arch = "riscv64", target_arch = "loongarch64"))]
551+
#[cfg(any(
552+
target_arch = "aarch64",
553+
target_arch = "riscv64",
554+
target_arch = "loongarch64"
555+
))]
548556
return Ok(Payload::KernelCopy);
549557
} else if let Some(external_kernel) = vm_resources.external_kernel() {
550558
Ok(Payload::ExternalKernel(external_kernel.clone()))
@@ -1203,7 +1211,11 @@ fn load_external_kernel(
12031211
// Raw images are treated as bundled kernels on x86_64
12041212
#[cfg(target_arch = "x86_64")]
12051213
KernelFormat::Raw => unreachable!(),
1206-
#[cfg(any(target_arch = "aarch64", target_arch = "riscv64", target_arch = "loongarch64"))]
1214+
#[cfg(any(
1215+
target_arch = "aarch64",
1216+
target_arch = "riscv64",
1217+
target_arch = "loongarch64"
1218+
))]
12071219
KernelFormat::Raw => {
12081220
let data: Vec<u8> = std::fs::read(external_kernel.path.clone())
12091221
.map_err(StartMicrovmError::RawOpenKernel)?;
@@ -1235,15 +1247,13 @@ fn load_external_kernel(
12351247
let mut kernel_data: Vec<u8> = Vec::new();
12361248
gz.read_to_end(&mut kernel_data)
12371249
.map_err(StartMicrovmError::PeGzDecoder)?;
1238-
guest_mem
1239-
.write(&kernel_data, kernel_load)
1240-
.unwrap();
1250+
guest_mem.write(&kernel_data, kernel_load).unwrap();
12411251
kernel_load
12421252
} else {
12431253
return Err(StartMicrovmError::PeGzInvalid);
12441254
}
12451255
}
1246-
1256+
12471257
#[cfg(target_arch = "loongarch64")]
12481258
KernelFormat::PeGz => {
12491259
const LOONGARCH_IMAGE_HEADER_SIZE: usize = 64;
@@ -1303,8 +1313,8 @@ fn load_external_kernel(
13031313

13041314
let entry_addr = if kernel_entry >= LOONGARCH_VMLINUX_LOAD_ADDRESS {
13051315
let entry_offset = kernel_entry
1306-
.checked_sub(LOONGARCH_VMLINUX_LOAD_ADDRESS)
1307-
.ok_or(StartMicrovmError::PeGzInvalid)?;
1316+
.checked_sub(LOONGARCH_VMLINUX_LOAD_ADDRESS)
1317+
.ok_or(StartMicrovmError::PeGzInvalid)?;
13081318
GuestAddress(
13091319
image_load_addr
13101320
.raw_value()
@@ -1323,8 +1333,7 @@ fn load_external_kernel(
13231333

13241334
debug!(
13251335
"loongarch pegz image_load_addr=0x{:x}, entry_addr=0x{:x}",
1326-
image_load_addr.0,
1327-
entry_addr.0
1336+
image_load_addr.0, entry_addr.0
13281337
);
13291338

13301339
guest_mem
@@ -1456,7 +1465,11 @@ fn load_payload(
14561465
StartMicrovmError,
14571466
> {
14581467
match payload {
1459-
#[cfg(any(target_arch = "aarch64", target_arch = "riscv64", target_arch = "loongarch64"))]
1468+
#[cfg(any(
1469+
target_arch = "aarch64",
1470+
target_arch = "riscv64",
1471+
target_arch = "loongarch64"
1472+
))]
14601473
Payload::KernelCopy => {
14611474
let (kernel_entry_addr, kernel_host_addr, kernel_guest_addr, kernel_size) =
14621475
if let Some(kernel_bundle) = &_vm_resources.kernel_bundle {
@@ -1643,7 +1656,11 @@ pub fn create_guest_memory(
16431656
Payload::Empty => arch::arch_memory_regions(mem_size, None, 0, 0, None),
16441657
Payload::Firmware => arch::arch_memory_regions(mem_size, None, 0, 0, firmware_size),
16451658
};
1646-
#[cfg(any(target_arch = "aarch64", target_arch = "riscv64", target_arch = "loongarch64"))]
1659+
#[cfg(any(
1660+
target_arch = "aarch64",
1661+
target_arch = "riscv64",
1662+
target_arch = "loongarch64"
1663+
))]
16471664
let (arch_mem_info, mut arch_mem_regions) = match payload {
16481665
Payload::ExternalKernel(external_kernel) => {
16491666
arch::arch_memory_regions(mem_size, external_kernel.initramfs_size, None)
@@ -1823,7 +1840,11 @@ fn attach_legacy_devices(
18231840
}
18241841

18251842
#[cfg(all(
1826-
any(target_arch = "aarch64", target_arch = "riscv64", target_arch = "loongarch64"),
1843+
any(
1844+
target_arch = "aarch64",
1845+
target_arch = "riscv64",
1846+
target_arch = "loongarch64"
1847+
),
18271848
target_os = "linux"
18281849
))]
18291850
fn attach_legacy_devices(

0 commit comments

Comments
 (0)