diff --git a/src/libs/compat/freebsd_network/device.c b/src/libs/compat/freebsd_network/device.c index be41af7f57..730327ddd5 100644 --- a/src/libs/compat/freebsd_network/device.c +++ b/src/libs/compat/freebsd_network/device.c @@ -125,7 +125,7 @@ compat_read(void *cookie, off_t position, void *buffer, size_t *numBytes) IF_DEQUEUE(&ifp->receive_queue, mb); } while (mb == NULL); - length = min_c(max_c((size_t)mb->m_len, 0), *numBytes); + length = min_c(max_c((size_t)mb->m_pkthdr.len, 0), *numBytes); #if 0 mb = m_defrag(mb, 0); @@ -135,7 +135,7 @@ compat_read(void *cookie, off_t position, void *buffer, size_t *numBytes) } #endif - memcpy(buffer, mtod(mb, const void *), length); + m_copydata(mb, 0, length, buffer); *numBytes = length; m_freem(mb); diff --git a/src/libs/compat/freebsd_network/fbsd_busdma_x86.c b/src/libs/compat/freebsd_network/fbsd_busdma_x86.c index cbb9e41ddb..90a6d09e2c 100644 --- a/src/libs/compat/freebsd_network/fbsd_busdma_x86.c +++ b/src/libs/compat/freebsd_network/fbsd_busdma_x86.c @@ -641,7 +641,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, * Get the physical address for this segment. */ if (pmap) - curaddr = pmap_extract(pmap, vaddr); + curaddr = (bus_addr_t)pmap_extract(pmap, vaddr); else curaddr = pmap_kextract(vaddr);