diff options
author | sbruno <sbruno@FreeBSD.org> | 2016-10-31 15:46:06 +0000 |
---|---|---|
committer | sbruno <sbruno@FreeBSD.org> | 2016-10-31 15:46:06 +0000 |
commit | 08b79ccdca6217b7bf5465e6153b9c9b2bebb5d2 (patch) | |
tree | 04f7ad7edf76e77d8f6ab6b26c72f07d08e798d5 | |
parent | 754064c15f0ac35585707ba561296dcf1e1fa92e (diff) | |
download | FreeBSD-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.h | 2 |
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; } |