4
1
mirror of https://github.com/DragonOS-Community/DragonOS.git synced 2025-06-20 05:56:32 +00:00

Patch fix sched and net lockdep error (#479)

- fix: 修复调度器,软中断,定时器,网络子系统的部分锁的使用不符合锁依赖安全规范的问题
- fix: 修复创建pcb时内核栈爆栈的问题
- 把异常的trap gate改成intr gate

---------

Co-authored-by: GnoCiYeH <heyicong@dragonos.org>
This commit is contained in:
LoGin
2023-12-27 14:27:12 +08:00
committed by GitHub
parent 91e9d4ab55
commit 0d6cf65aa1
28 changed files with 406 additions and 246 deletions

@ -343,6 +343,8 @@ pub fn e1000e_driver_init(device: E1000EDevice) {
let driver = E1000EDriver::new(device);
let iface = E1000EInterface::new(driver);
// 将网卡的接口信息注册到全局的网卡接口信息表中
NET_DRIVERS.write().insert(iface.nic_id(), iface.clone());
NET_DRIVERS
.write_irqsave()
.insert(iface.nic_id(), iface.clone());
kinfo!("e1000e driver init successfully!\tMAC: [{}]", mac);
}

@ -234,7 +234,9 @@ pub fn virtio_net<T: Transport + 'static>(transport: T) {
let iface = VirtioInterface::new(driver);
let name = iface.name.clone();
// 将网卡的接口信息注册到全局的网卡接口信息表中
NET_DRIVERS.write().insert(iface.nic_id(), iface.clone());
NET_DRIVERS
.write_irqsave()
.insert(iface.nic_id(), iface.clone());
kinfo!(
"Virtio-net driver init successfully!\tNetDevID: [{}], MAC: [{}]",
name,