CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2014/07/03 07:26:05
Modified files:
sys/dev/pci : if_bge.c
Log message:
sending a heavily fragmented packet will cause the bus_dmamap_load
in bge_encap to fail because the dmamap lacks space, not necessarily
because the ring is full. however, bge_encap failure sets the OACTIVE
flag on the interface and keeps the packet at the start of the send
queue.
the next time we try to fill the tx ring we'll try to load the same
packet and fail. an empty tx ring means bge_txeof hasnt got anything
which is where the OACTIVE condition is cleared.
this diff adds handling of fragmented packets via m_defrag.
this might fix the issues landry@ has been complaining about on his
bulk build machines. i can reproduce the above problem in contrived
circumstances here and this diff fixes it, so its going in so landry@
is forced to test it.