From: Thomas Falcon > Sent: 17 October 2017 18:37 > This patch enables scatter gather support. Since there is no > HW/FW scatter-gather support at this time, the driver needs to > loop through each fragment and copy it to a contiguous, pre-mapped > buffer entry. ... > offset = index * adapter->req_mtu; > dst = tx_pool->long_term_buff.buff + offset;
You should be able to treat the pre-allocated data area as a big ring buffer. So it can hold a lot of small frames or a few big ones. This slightly complicates the 'is there enough space for this packet' check since you need buffer space as well as a ring entry. You also really want to align each tx buffer on a 4n+2 boundary so that most of the copy is aligned. > memset(dst, 0, adapter->req_mtu); Seems unnecessary. David