Protect used_ports with LocalIrqDisabled

This commit is contained in:
Ruihan Li
2024-12-05 09:52:57 +08:00
committed by Tate, Hongliang Tian
parent 1716f4f324
commit 39a5e88baf

View File

@ -11,7 +11,7 @@ use alloc::{
}; };
use keyable_arc::KeyableArc; use keyable_arc::KeyableArc;
use ostd::sync::{LocalIrqDisabled, PreemptDisabled, SpinLock, SpinLockGuard}; use ostd::sync::{LocalIrqDisabled, SpinLock, SpinLockGuard};
use smoltcp::{ use smoltcp::{
iface::{packet::Packet, Context}, iface::{packet::Packet, Context},
phy::Device, phy::Device,
@ -36,7 +36,7 @@ use crate::{
pub struct IfaceCommon<E: Ext> { pub struct IfaceCommon<E: Ext> {
name: String, name: String,
interface: SpinLock<smoltcp::iface::Interface, LocalIrqDisabled>, interface: SpinLock<smoltcp::iface::Interface, LocalIrqDisabled>,
used_ports: SpinLock<BTreeMap<u16, usize>, PreemptDisabled>, used_ports: SpinLock<BTreeMap<u16, usize>, LocalIrqDisabled>,
tcp_sockets: SpinLock<BTreeSet<KeyableArc<BoundTcpSocketInner<E>>>, LocalIrqDisabled>, tcp_sockets: SpinLock<BTreeSet<KeyableArc<BoundTcpSocketInner<E>>>, LocalIrqDisabled>,
udp_sockets: SpinLock<BTreeSet<KeyableArc<BoundUdpSocketInner<E>>>, LocalIrqDisabled>, udp_sockets: SpinLock<BTreeSet<KeyableArc<BoundUdpSocketInner<E>>>, LocalIrqDisabled>,
sched_poll: E::ScheduleNextPoll, sched_poll: E::ScheduleNextPoll,