I'm developing an implementation of 802.11 inside
UML, to make it able to emulate a wireless lan.
I'm modifing the "daemon_read" and "daemon_write"
functions inside "daemon_kern.c".
before to send a packet, I enlarge it and I insert the
new 802.11 header. Then I put it in a list of sk_buff,
and if the channel is free, I send the packet. By now
I'm just triing to put the sk_buff packet in a list
and to send it immediatly, whithout run a collision
At the arrival of a packet, I extract the 802.11
header, I compress the packet deleting the bytes
concerning the 802.11 header, and I manage the packet
following the protocol (send ack or cts, etc...)
By now it just sends an ACK for each not broadcast
packet it receives.
My question is: I'm having some problems in managing
the sk_buff structures: using the functions in
sk_buff.h, I have a kernel panic :
Warning: kfree_skb passed an skb still on a list (from
Kernel panic: kernel BUG at skbuff.c:316!
Does someone have some idea about the cause of this
Thank in advance,
Yahoo! Companion - Scarica gratis la toolbar di Ricerca di Yahoo!
From: Jeff Dike <jdike@ad...> - 2004-05-20 00:04:05
> Warning: kfree_skb passed an skb still on a list (from a0126b3b)
> Kernel panic: kernel BUG at skbuff.c:316!
> Does someone have some idea about the cause of this problem?
If you aren't familiar with skbuff management, you should probably find
some driver that's similar to yours, and just copy how it does things.