This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
0xDEADBEEF LOCK in spl_any() ;)
- To: "'eCos discussion'" <ecos-discuss at sources dot redhat dot com>
- Subject: [ECOS] 0xDEADBEEF LOCK in spl_any() ;)
- From: "Trenton D. Adams" <tadams at extremeeng dot com>
- Date: Wed, 17 Oct 2001 11:45:06 -0600
- Organization: Extreme Engineering
FYI: Trying to debug WaveLAN pccard driver.
I'm getting a dead lock in spl_any () in
"net/tcpip/current/src/ecos/synch.c"
I have now set my IP address to a static one as defined below.
I'm going to have to fix that hw_addr. I'll do a search in the archives
to see if I can find information on that. If not, I'll post another
question.
BOOTP[eth0] op: REPLY
htype: Ethernet
hlen: 6
hops: 0
xid: 0x0
secs: 0
flags: 0x0
hw_addr: ff:ff:ff:ff:ff:ff
client IP: 172.16.1.30
my IP: 172.16.1.30
server IP: 172.16.1.1
gateway IP: 172.16.1.1
options:
subnet mask: 255.255.255.0
IP broadcast: 172.16.1.255
gateway: 172.16.1.1
I don't what the "cyg_mutex_lock( &splx_mutex )" is locking splx_mutex
for. Anyone???
if ( cyg_thread_self() != splx_thread ) {
cyg_mutex_lock( &splx_mutex ); // <<< DEADLOCKS HERE
old_spl = 0; // Free when we unlock this context
CYG_ASSERT( 0 == splx_thread, "Thread still owned" );
CYG_ASSERT( 0 == spl_state, "spl still set" );
splx_thread = cyg_thread_self();
}
FYI: spl_any () is called some time during the splsoftnet() call in
"net/tcpip/current/src/sys/net/route.c:608"
On a last note, I would try and figure this out myself, but I found 2903
occurrences of splx_mutex throughout the sources. I imagine there's
someone out there that understand the net stack better, and could give
me a hint as to why this might be happening, and how to resolve it!? :)
A BIG thanks in Advance!
Trenton D. Adams
Extreme Engineering
#17, 6025 - 12 St. SE
Calgary, Alberta, Canada
T2H 2K1
Phone: 403 640 9494 ext-208
Fax: 403 640 9599
http://www.extremeeng.com