I am sorry, I have just forgotten to write the mail title.
I have a question about the modification of the madwifi driver for my research.I was trapped and I am very apreciated about any hints!
I want to make the driver just send out one packet when every two packets from upper layer.
So I have tried to create a sk_buff_head list in the function ath_hardstart before calling the function ieee80211_encap.
The problem is: I can only send out serveral packets(about 20 or more), and then I can't send any more. I got the error information in the log file:
ath_hardstart: discard, no xmit buf
ath_mgtstart: stop queue
ath_mgtstart: discard, no xmit buf
The code I inserted to the ath_hardstart were as follows:
struct sk_buff *pTemp = skb_copy( skb, __GFP_HIGH );
struct sk_buff *pMySkb;
kfree_skb( skb );
skb_queue_head( &MySkbList, tTemp );
if( skb_queue_len( &MySkbList ) == 2 )
pMySkb = skb_dequeue( &MySkbList );
kfree_skb( skb_dequeue( &MySkbList ) );
skb = ieee80211_encap( ni, pMySkb, &framecnt);
Any one can give me some hints, I am very apreciated!