summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorliuxianliang <[email protected]>2021-04-06 10:46:31 +0800
committerliuxianliang <[email protected]>2021-04-06 10:46:31 +0800
commit2b549d93c88bd0dd55429457f0da9eb199374b3a (patch)
treebbfe03b6712188d9298f9ed2a0bc5973970b8ba3 /components
parent233e1cd8bc7cbdc38006dfc18adde8bc2595620f (diff)
[fix] change from enter critical area into disable interrupt.
Diffstat (limited to 'components')
-rw-r--r--components/net/lwip-1.4.1/src/netif/ethernetif.c5
-rw-r--r--components/net/lwip-2.0.2/src/netif/ethernetif.c5
-rw-r--r--components/net/lwip-2.1.2/src/netif/ethernetif.c5
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(&eth_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(&eth_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(&eth_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)