numam-dpdk/lib
Nithin Dabilpuram c13ca4e81c vfio: fix DMA mapping granularity for IOVA as VA
Partial unmapping is not supported for VFIO IOMMU type1
by kernel. Though kernel gives return as zero, the unmapped size
returned will not be same as expected. So check for
returned unmap size and return error.

For IOVA as PA, DMA mapping is already at memseg size
granularity. Do the same even for IOVA as VA mode as
DMA map/unmap triggered by heap allocations,
maintain granularity of memseg page size so that heap
expansion and contraction does not have this issue.

For user requested DMA map/unmap disallow partial unmapping
for VFIO type1.

Fixes: 73a6390859 ("vfio: allow to map other memory regions")
Cc: stable@dpdk.org

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: David Christensen <drc@linux.vnet.ibm.com>
2021-03-01 11:58:28 +01:00
..
librte_acl build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bbdev build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_bitratestats bitrate: fix missing header include 2021-01-21 10:27:44 +01:00
librte_bpf build: force pkg-config for dependency detection 2021-01-26 00:43:59 +01:00
librte_cfgfile build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_cmdline cmdline: avoid name clash with Windows system types 2020-11-05 17:49:00 +01:00
librte_compressdev lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_cryptodev lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_distributor build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_eal vfio: fix DMA mapping granularity for IOVA as VA 2021-03-01 11:58:28 +01:00
librte_efd efd: fix tailq entry leak in error path 2020-10-22 22:07:15 +02:00
librte_ethdev ethdev: refine doxygen comment of UDP tunnel API 2021-02-10 21:48:59 +01:00
librte_eventdev eventdev: fix a return value comment 2021-02-04 13:51:45 +01:00
librte_fib fib: fix missing header includes 2021-01-21 10:27:47 +01:00
librte_flow_classify build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_graph build: standardize component names and defines 2020-10-19 22:15:34 +02:00
librte_gro gro: fix packet type detection with IPv6 tunnel 2020-11-14 10:56:30 +01:00
librte_gso gso: support VXLAN UDP/IPv4 2021-01-15 11:31:28 +01:00
librte_hash build: add header includes check 2021-01-29 20:59:37 +01:00
librte_ip_frag ip_frag: remove padding length of fragment 2021-01-15 11:31:28 +01:00
librte_ipsec build: add header includes check 2021-01-29 20:59:37 +01:00
librte_jobstats build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_kni build: align wording of non-support reasons 2020-11-20 16:05:35 +01:00
librte_kvargs build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_latencystats latency: switch Rx timestamp to dynamic mbuf field 2020-11-03 16:21:15 +01:00
librte_lpm build: add header includes check 2021-01-29 20:59:37 +01:00
librte_mbuf mbuf: remove unneeded atomic generic header include 2021-02-05 19:49:32 +01:00
librte_member build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_mempool mempool: fix panic on dump or audit 2021-02-05 17:40:23 +01:00
librte_meter build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_metrics build: force pkg-config for dependency detection 2021-01-26 00:43:59 +01:00
librte_net net: fix missing header include 2021-01-21 10:21:40 +01:00
librte_node node: fix missing header include 2021-01-21 10:27:47 +01:00
librte_pci build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_pdump pdump: cleanup logs and variables 2021-01-19 15:24:46 +01:00
librte_pipeline pipeline: fix missing header includes 2021-01-21 10:27:47 +01:00
librte_port lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_power power: fix missing header includes 2021-01-29 20:59:09 +01:00
librte_rawdev lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_rcu rcu: use EAL memory barrier API 2021-01-11 15:34:21 +01:00
librte_regexdev build: add header includes check 2021-01-29 20:59:37 +01:00
librte_reorder reorder: switch sequence number to dynamic mbuf field 2020-10-31 22:14:30 +01:00
librte_rib rib: fix missing header include 2021-01-29 20:59:09 +01:00
librte_ring build: add header includes check 2021-01-29 20:59:37 +01:00
librte_sched build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_security lib: fix doxygen for parameters of function pointers 2021-01-29 15:58:06 +01:00
librte_stack build: add header includes check 2021-01-29 20:59:37 +01:00
librte_table build: add header includes check 2021-01-29 20:59:37 +01:00
librte_telemetry telemetry: mark init function as internal-only 2021-02-09 13:36:45 +01:00
librte_timer build: remove library name from version map file name 2020-10-19 22:13:59 +02:00
librte_vhost vhost: fix packed ring dequeue offloading 2021-02-10 22:17:47 +01:00
meson.build build: add header includes check 2021-01-29 20:59:37 +01:00