diff options
| author | liuxianliang <[email protected]> | 2021-04-06 10:46:31 +0800 |
|---|---|---|
| committer | liuxianliang <[email protected]> | 2021-04-06 10:46:31 +0800 |
| commit | 2b549d93c88bd0dd55429457f0da9eb199374b3a (patch) | |
| tree | bbfe03b6712188d9298f9ed2a0bc5973970b8ba3 /components/net | |
| parent | 233e1cd8bc7cbdc38006dfc18adde8bc2595620f (diff) | |
[fix] change from enter critical area into disable interrupt.
Diffstat (limited to 'components/net')
| -rw-r--r-- | components/net/lwip-1.4.1/src/netif/ethernetif.c | 5 | ||||
| -rw-r--r-- | components/net/lwip-2.0.2/src/netif/ethernetif.c | 5 | ||||
| -rw-r--r-- | components/net/lwip-2.1.2/src/netif/ethernetif.c | 5 |
3 files changed, 9 insertions, 6 deletions
diff --git a/components/net/lwip-1.4.1/src/netif/ethernetif.c b/components/net/lwip-1.4.1/src/netif/ethernetif.c index 94d1f8d907..4565f5e528 100644 --- a/components/net/lwip-1.4.1/src/netif/ethernetif.c +++ b/components/net/lwip-1.4.1/src/netif/ethernetif.c @@ -638,6 +638,7 @@ static void eth_rx_thread_entry(void* parameter) { if (rt_mb_recv(ð_rx_thread_mb, (rt_ubase_t*)&device, RT_WAITING_FOREVER) == RT_EOK) { + rt_base_t level; struct pbuf *p; /* check link status */ @@ -657,10 +658,10 @@ static void eth_rx_thread_entry(void* parameter) netifapi_netif_set_link_down(device->netif); } - rt_enter_critical(); + level = rt_hw_interrupt_disable(); /* 'rx_notice' will be modify in the interrupt or here */ device->rx_notice = RT_FALSE; - rt_exit_critical(); + rt_hw_interrupt_enable(level); /* receive all of buffer */ while(1) diff --git a/components/net/lwip-2.0.2/src/netif/ethernetif.c b/components/net/lwip-2.0.2/src/netif/ethernetif.c index 28e3822cf7..1c0f3ca9b2 100644 --- a/components/net/lwip-2.0.2/src/netif/ethernetif.c +++ b/components/net/lwip-2.0.2/src/netif/ethernetif.c @@ -687,6 +687,7 @@ static void eth_rx_thread_entry(void* parameter) { if (rt_mb_recv(ð_rx_thread_mb, (rt_ubase_t *)&device, RT_WAITING_FOREVER) == RT_EOK) { + rt_base_t level; struct pbuf *p; /* check link status */ @@ -706,10 +707,10 @@ static void eth_rx_thread_entry(void* parameter) netifapi_netif_set_link_down(device->netif); } - rt_enter_critical(); + level = rt_hw_interrupt_disable(); /* 'rx_notice' will be modify in the interrupt or here */ device->rx_notice = RT_FALSE; - rt_exit_critical(); + rt_hw_interrupt_enable(level); /* receive all of buffer */ while(1) diff --git a/components/net/lwip-2.1.2/src/netif/ethernetif.c b/components/net/lwip-2.1.2/src/netif/ethernetif.c index 09a84f61e5..751a7bbdac 100644 --- a/components/net/lwip-2.1.2/src/netif/ethernetif.c +++ b/components/net/lwip-2.1.2/src/netif/ethernetif.c @@ -689,6 +689,7 @@ static void eth_rx_thread_entry(void* parameter) { if (rt_mb_recv(ð_rx_thread_mb, (rt_ubase_t *)&device, RT_WAITING_FOREVER) == RT_EOK) { + rt_base_t level; struct pbuf *p; /* check link status */ @@ -708,10 +709,10 @@ static void eth_rx_thread_entry(void* parameter) netifapi_netif_set_link_down(device->netif); } - rt_enter_critical(); + level = rt_hw_interrupt_disable(); /* 'rx_notice' will be modify in the interrupt or here */ device->rx_notice = RT_FALSE; - rt_exit_critical(); + rt_hw_interrupt_enable(level); /* receive all of buffer */ while(1) |
