fix: 修复存在多个virtio设备时,中断号冲突的问题 (#904)

This commit is contained in:
LoGin 2024-08-29 22:58:59 +08:00 committed by GitHub
parent dc9b4fea1b
commit 232570ae98
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 4 deletions

View File

@ -369,7 +369,7 @@ pub trait PciInterrupt: PciDeviceStructure {
irq_num,
common_msg.irq_name.clone(),
common_msg.irq_hander,
IrqHandleFlags::empty(),
IrqHandleFlags::IRQF_SHARED,
Some(common_msg.dev_id.clone()),
);
@ -532,7 +532,7 @@ pub trait PciInterrupt: PciDeviceStructure {
irq_num,
common_msg.irq_name.clone(),
common_msg.irq_hander,
IrqHandleFlags::empty(),
IrqHandleFlags::IRQF_SHARED,
Some(common_msg.dev_id.clone()),
);

View File

@ -33,9 +33,11 @@ fn kernel_init() -> Result<(), SystemError> {
// 由于目前加锁,速度过慢,所以先不开启双缓冲
// scm_enable_double_buffer().expect("Failed to enable double buffer");
#[cfg(target_arch = "x86_64")]
crate::driver::disk::ahci::ahci_init().expect("Failed to initialize AHCI");
virtio_probe();
#[cfg(target_arch = "x86_64")]
crate::driver::disk::ahci::ahci_init()
.inspect_err(|e| log::warn!("Failed to initialize AHCI: {e:?}"))
.ok();
mount_root_fs().expect("Failed to mount root fs");
e1000e_init();
net_init().unwrap_or_else(|err| {