Hi Torquato, Good to hear it helped. I actually fixed another problem in skbmgr.cc as well. Recycled skbs need to have the skb->dst pointer set to NULL. I had some packets coming from linux with this pointer non-NULL. The next use of the recycled skb will call dst_release with the refcnt 0, then -1 ,then -2, etc, causing a hugh stream of printks. The patch is below.
- David --- click/linuxmodule/skbmgr.cc +++ tmp/linuxmodule/skbmgr.cc @@ -248,6 +248,7 @@ // datarefp (expensive to set). if (!(skb->pkt_type & PACKET_CLEAN)) { dst_release(skb->dst); + skb->dst = NULL; // stale pointer will cause problems for recycled skbs; dst_run_gc will cleanup mem if (skb->destructor) { skb->destructor(skb); skb->destructor = NULL; Torquato Bertani wrote: > Hi David, > thanks for your patch. Now my kernel doesn't crash anymore! > Bye > > On 4/12/06, David Claffey <[EMAIL PROTECTED]> wrote: >> I have the click linuxmodule and the madwifi-ng driver running on >> linux-2.6.12. >> I'm using todevice() to send packets out the ath device in monitor mode. >> But >> this only works after adding the following patch: >> --- click/elements/linuxmodule/todevice.cc >> +++ tmp/elements/linuxmodule/todevice.cc >> @@ -383,6 +383,12 @@ >> skb_put(skb1, 60 - skb1->len); >> } >> >> + skb1->dev = _dev; >> + >> int ret; >> #if HAVE_LINUX_POLLING >> if (_dev->polling > 0) >> ret = _dev->tx_queue(_dev, skb1); >> else >> #endif >> { >> ret = _dev->hard_start_xmit(skb1, _dev); >> _hard_start++; >> } >> >> Todevice() passes the skb to ieee80211_hardstart(struct sk_buff *skb, struct >> net_device *dev) which then calls ieee80211_monitor_encap(struct ieee80211vap >> *vap, struct sk_buff *skb). The problem arises when >> ieee80211_monitor_encap() >> references skb->dev->type with skb->dev NULL. Can anyone suggest which >> function >> should set skb->dev, todevice or ieee80211_hardstart? >> >> - David >> _______________________________________________ >> click mailing list >> click@amsterdam.lcs.mit.edu >> https://amsterdam.lcs.mit.edu/mailman/listinfo/click >> > > _______________________________________________ > click mailing list > click@amsterdam.lcs.mit.edu > https://amsterdam.lcs.mit.edu/mailman/listinfo/click > _______________________________________________ click mailing list click@amsterdam.lcs.mit.edu https://amsterdam.lcs.mit.edu/mailman/listinfo/click