aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/neta/if_mvneta.c
diff options
context:
space:
mode:
authorMarcin Wojtas <mw@FreeBSD.org>2017-09-09 11:49:36 +0000
committerMarcin Wojtas <mw@FreeBSD.org>2017-09-09 11:49:36 +0000
commite7843f1dd6649eecf1689b28a048985cf8b7b11c (patch)
tree919371481755d4813eb3111f11cef7f3cbe19343 /sys/dev/neta/if_mvneta.c
parente49e3ec31e9478bdb7ea24613ea790c8b417bd26 (diff)
Store virtual address of buffer in mvneta_rx_ring
Now the virtual address of received buffer is taken from a software ring. Thanks to this, we can use the NETA driver on 64 bits architecture and avoid 32-bit buf_cookie descriptor field limitation. Submitted by: Patryk Duda <pdk@semihalf.com> Obtained from: Semihalf Sponsored by: Semihalf Differential Revision: https://reviews.freebsd.org/D12257
Notes
Notes: svn path=/head/; revision=323361
Diffstat (limited to 'sys/dev/neta/if_mvneta.c')
-rw-r--r--sys/dev/neta/if_mvneta.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/neta/if_mvneta.c b/sys/dev/neta/if_mvneta.c
index 33e00d13524b..ed847c4045a4 100644
--- a/sys/dev/neta/if_mvneta.c
+++ b/sys/dev/neta/if_mvneta.c
@@ -3008,7 +3008,7 @@ mvneta_rx_queue(struct mvneta_softc *sc, int q, int npkt)
* bytecnt cover MH, PKT, CRC
*/
pktlen = r->bytecnt - ETHER_CRC_LEN - MVNETA_HWHEADER_SIZE;
- pktbuf = (uint8_t *)r->bufptr_va + MVNETA_PACKET_OFFSET +
+ pktbuf = (uint8_t *)rx->rxbuf_virt_addr[rx->dma] + MVNETA_PACKET_OFFSET +
MVNETA_HWHEADER_SIZE;
/* Prefetch mbuf data. */
@@ -3135,7 +3135,7 @@ mvneta_rx_queue_refill(struct mvneta_softc *sc, int q)
rxbuf->m = m;
r = &rx->desc[rx->cpu];
r->bufptr_pa = segs.ds_addr;
- r->bufptr_va = (uint32_t)m->m_data;
+ rx->rxbuf_virt_addr[rx->cpu] = m->m_data;
rx->cpu = rx_counter_adv(rx->cpu, 1);
}