summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsbruno <sbruno@FreeBSD.org>2016-10-31 15:46:06 +0000
committersbruno <sbruno@FreeBSD.org>2016-10-31 15:46:06 +0000
commit08b79ccdca6217b7bf5465e6153b9c9b2bebb5d2 (patch)
tree04f7ad7edf76e77d8f6ab6b26c72f07d08e798d5
parent754064c15f0ac35585707ba561296dcf1e1fa92e (diff)
downloadFreeBSD-src-08b79ccdca6217b7bf5465e6153b9c9b2bebb5d2.zip
FreeBSD-src-08b79ccdca6217b7bf5465e6153b9c9b2bebb5d2.tar.gz
MFC r308038:
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.
-rw-r--r--sys/dev/netmap/if_em_netmap.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/netmap/if_em_netmap.h b/sys/dev/netmap/if_em_netmap.h
index 28f2dd4..1fe7563 100644
--- a/sys/dev/netmap/if_em_netmap.h
+++ b/sys/dev/netmap/if_em_netmap.h
@@ -277,9 +277,9 @@ em_netmap_rxsync(struct netmap_kring *kring, int flags)
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;
}
OpenPOWER on IntegriCloud