eliastor / rt-thread

Automatically exported from code.google.com/p/rt-thread
GNU General Public License v2.0
0 stars 0 forks source link

LWIP porting issue #11

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
To reproduce the problem:
1. Create a normal tcp socket thread and put it to listen state. Make sure the 
priority of this thread is higher than tcpip thread.
2. When accepting a new connection, data abort may occur in lwip_select()

Code related to it:
sockets.c -> event_callback() 

Root cause:
There are 2 main issue related to it:
1 SYS_ARCH_PROTECT is defined to nothing (see 
components/net/lwip/src/arch/include/arch/cc.h)
2 implementation of sys_arch_protect is buggy
The scheduler should be locked as well as disabling interupt (A task schedule 
may occur during sending a semaphore while interrupt is diabled).

Version of rtthread affected:
Both 1.4 dev and 1.3.2 stable.

Original issue reported on code.google.com by mbb...@gmail.com on 8 Jul 2011 at 1:45