Author: sbruno
Date: Mon Jul  3 19:23:45 2017
New Revision: 320611
URL: https://svnweb.freebsd.org/changeset/base/320611

Log:
  iflib - flib_busdma_load_mbuf_sg used isc_tx_maxsize as max semgent size.
  
  Submitted by: krzysztof.gala...@intel.com
  Differential Revision:        https://reviews.freebsd.org/D11403

Modified:
  head/sys/net/iflib.c

Modified: head/sys/net/iflib.c
==============================================================================
--- head/sys/net/iflib.c        Mon Jul  3 18:42:26 2017        (r320610)
+++ head/sys/net/iflib.c        Mon Jul  3 19:23:45 2017        (r320611)
@@ -2892,7 +2892,7 @@ iflib_busdma_load_mbuf_sg(iflib_txq_t txq, bus_dma_tag
        if_ctx_t ctx;
        if_shared_ctx_t         sctx;
        if_softc_ctx_t          scctx;
-       int i, next, pidx, err, maxsegsz, ntxd, count;
+       int i, next, pidx, err, ntxd, count;
        struct mbuf *m, *tmp, **ifsd_m;
 
        m = *m0;
@@ -2935,13 +2935,17 @@ iflib_busdma_load_mbuf_sg(iflib_txq_t txq, bus_dma_tag
                        m = m->m_next;
                } while (m != NULL);
        } else {
-               int buflen, sgsize, max_sgsize;
+               int buflen, sgsize, maxsegsz, max_sgsize;
                vm_offset_t vaddr;
                vm_paddr_t curaddr;
 
                count = i = 0;
-               maxsegsz = sctx->isc_tx_maxsize;
                m = *m0;
+               if (m->m_pkthdr.csum_flags & CSUM_TSO)
+                       maxsegsz = scctx->isc_tx_tso_segsize_max;
+               else
+                       maxsegsz = sctx->isc_tx_maxsegsize;
+
                do {
                        if (__predict_false(m->m_len <= 0)) {
                                tmp = m;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to