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: franco@opnsense.org MFC after: 2 days
This commit is contained in:
parent
b133b47342
commit
c371f1143c
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user