The APIs for converting a virtual address to an IOVA or a physical
address were implemented only as stubs on FreeBSD, but unfortunately
they are used by drivers such as "igc", part of e1000, causing the
drivers to fail on BSD. A workaround would be to change the use of these
functions with the rte_malloc equivalents (e.g. rte_malloc_virt2iova) -
which do work on FreeBSD - but a better solution is just to replace the
stubs with proper implementations in FreeBSD-specific EAL flags.

Bruce Richardson (2):
  eal/freebsd: fix memseg addresses in IOVA_AS_VA mode
  eal/freebsd: implement virtual to IOVA translation fn

 app/test/test_memory.c       | 67 ++++++++++++++++++++++++++++++++++++
 lib/eal/freebsd/eal_memory.c | 27 +++++++++++----
 2 files changed, 88 insertions(+), 6 deletions(-)

--
2.53.0

Reply via email to