Minor speedup, and fix for mbuf loop on fragmented packet
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'
Showing with 14 additions and 10 deletions