CVSROOT: /cvs Module name: src Changes by: s...@cvs.openbsd.org 2016/03/21 15:16:30
Modified files: sys/dev/ic : rt2860.c rt2860var.h Log message: In ral(4) RT2860 code, replace custom defrag with m_defrag(). This fixes an error in the existing code: the "hopeless case" guard equivales 'ring now full', so oactive is never set: the code drops any mbuf that would fill the ring. This occurs often in practice. The new code avoids some hoop-jumping. Currently, one tx dma-map can fill the tx ring. Therefore an mbuf that fits a dma-map may yet not fit into the tx ring's remaining space. To be sure it can, we must in general count the mbuf's fragments and, if necessary, defrag it and reload the dmamap. Patch by Richard Procter via bugs@ Tested by Richard on RT2860 and by me on RT3090 and RT2700. ok mpi@ dlg@