Author: sbruno
Date: Fri Oct 28 13:37:58 2016
New Revision: 308038
URL: https://svnweb.freebsd.org/changeset/base/308038

Log:
  The buffer address is always overwritten in the extended descriptor format,
  we have to refresh it ... always.  This fixes problems reported in NetMap
  with em(4) devices after conversion to extended descriptor format in
  svn r293331.
  
  Submitted by: luigi@
  Reported by:  fra...@opnsense.org
  MFC after:    2 days

Modified:
  head/sys/dev/netmap/if_em_netmap.h

Modified: head/sys/dev/netmap/if_em_netmap.h
==============================================================================
--- head/sys/dev/netmap/if_em_netmap.h  Fri Oct 28 12:59:21 2016        
(r308037)
+++ head/sys/dev/netmap/if_em_netmap.h  Fri Oct 28 13:37:58 2016        
(r308038)
@@ -277,9 +277,9 @@ em_netmap_rxsync(struct netmap_kring *kr
                        if (addr == NETMAP_BUF_BASE(na)) /* bad buf */
                                goto ring_reset;
 
+                       curr->read.buffer_addr = htole64(paddr);
                        if (slot->flags & NS_BUF_CHANGED) {
                                /* buffer has changed, reload map */
-                               curr->read.buffer_addr = htole64(paddr);
                                netmap_reload_map(na, rxr->rxtag, rxbuf->map, 
addr);
                                slot->flags &= ~NS_BUF_CHANGED;
                        }
_______________________________________________
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