• Robert Sprowson's avatar
    Minor speedup, and fix for mbuf loop on fragmented packet · 4bfac56c
    Robert Sprowson authored
    Line 277: When an interrupt is handled by the driver, actively claim it rather than clearing and passing on, to save the kernel having to carry on looking through its claimant list.
    Line 527: On fast machines if you're unlucky while sending out a fragmented packet which has been provided as a list of mbufs length > 1, having sent the first chain in the list by using CAT() the chain is free'd but without cropping the hdr off which now points to a free'd mbuf. An incoming packet just at that moment would likely recycle the mbuf and the result is a circular linked list which MbufManager can't process. Unlink hdr before freeing to break the chain.
    
    Version 0.02. Tagged as 'EtherCPSW-0_02'
    4bfac56c
glue 20.7 KB