svn commit: r297721 - head/sys/dev/vnic
Zbigniew Bodek
zbb at FreeBSD.org
Fri Apr 8 16:14:19 UTC 2016
Author: zbb
Date: Fri Apr 8 16:14:18 2016
New Revision: 297721
URL: https://svnweb.freebsd.org/changeset/base/297721
Log:
Fix sending TSO packets larger than single DMA segment on VNIC
Due to the bug in the number of 'GATHER' subdescriptors for TSO
packets, VNIC was not able to transmit more than one DMA segment
with TSO enabled.
Obtained from: Semihalf
Sponsored by: Cavium
Modified:
head/sys/dev/vnic/nicvf_queues.c
Modified: head/sys/dev/vnic/nicvf_queues.c
==============================================================================
--- head/sys/dev/vnic/nicvf_queues.c Fri Apr 8 15:48:10 2016 (r297720)
+++ head/sys/dev/vnic/nicvf_queues.c Fri Apr 8 16:14:18 2016 (r297721)
@@ -1904,7 +1904,6 @@ static int
nicvf_tx_mbuf_locked(struct snd_queue *sq, struct mbuf **mbufp)
{
bus_dma_segment_t segs[256];
- struct nicvf *nic;
struct snd_buff *snd_buff;
size_t seg;
int nsegs, qentry;
@@ -1928,12 +1927,7 @@ nicvf_tx_mbuf_locked(struct snd_queue *s
}
/* Set how many subdescriptors is required */
- nic = sq->nic;
- if ((*mbufp)->m_pkthdr.tso_segsz != 0 && nic->hw_tso)
- subdesc_cnt = MIN_SQ_DESC_PER_PKT_XMIT;
- else
- subdesc_cnt = MIN_SQ_DESC_PER_PKT_XMIT + nsegs - 1;
-
+ subdesc_cnt = MIN_SQ_DESC_PER_PKT_XMIT + nsegs - 1;
if (subdesc_cnt > sq->free_cnt) {
/* ARM64TODO: Add mbuf defragmentation if we lack descriptors */
bus_dmamap_unload(sq->snd_buff_dmat, snd_buff->dmap);
More information about the svn-src-head
mailing list