diff --git a/components/net/lwip-1.4.1/src/arch/sys_arch.c b/components/net/lwip-1.4.1/src/arch/sys_arch.c index 14e61fb88fd9d96b8a042bf04b08476c93d504c8..3ae636019898939f06fbb0d4060d94b7ce9d223a 100644 --- a/components/net/lwip-1.4.1/src/arch/sys_arch.c +++ b/components/net/lwip-1.4.1/src/arch/sys_arch.c @@ -11,6 +11,7 @@ * Date Author Notes * 2012-12-8 Bernard add file header * export bsd socket symbol for RT-Thread Application Module + * 2017-11-15 Bernard add lock for init_done callback. */ #include @@ -96,6 +97,7 @@ static void tcpip_init_done_callback(void *arg) /* leave critical */ rt_exit_critical(); + LOCK_TCPIP_CORE(); netif_add(ethif->netif, &ipaddr, &netmask, &gw, ethif, netif_device_init, tcpip_input); @@ -121,6 +123,7 @@ static void tcpip_init_done_callback(void *arg) netif_set_link_up(ethif->netif); } + UNLOCK_TCPIP_CORE(); /* enter critical */ rt_enter_critical(); } diff --git a/components/net/lwip-2.0.2/src/arch/sys_arch.c b/components/net/lwip-2.0.2/src/arch/sys_arch.c index dd5345ccbbf0cebc20b62a431df868a3f0e10dc9..d0862000ad87c0d652182c28f58e8b9c334fd376 100644 --- a/components/net/lwip-2.0.2/src/arch/sys_arch.c +++ b/components/net/lwip-2.0.2/src/arch/sys_arch.c @@ -11,6 +11,7 @@ * Date Author Notes * 2012-12-8 Bernard add file header * export bsd socket symbol for RT-Thread Application Module + * 2017-11-15 Bernard add lock for init_done callback. */ #include @@ -98,6 +99,7 @@ static void tcpip_init_done_callback(void *arg) /* leave critical */ rt_exit_critical(); + LOCK_TCPIP_CORE(); netif_add(ethif->netif, &ipaddr, &netmask, &gw, ethif, netif_device_init, tcpip_input); @@ -120,6 +122,7 @@ static void tcpip_init_done_callback(void *arg) netif_set_link_up(ethif->netif); } + UNLOCK_TCPIP_CORE(); /* enter critical */ rt_enter_critical(); }