regex/mlx5: fix memory region unregistration
authorMichael Baum <michaelba@nvidia.com>
Mon, 12 Jul 2021 07:06:42 +0000 (10:06 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 22 Jul 2021 13:19:30 +0000 (15:19 +0200)
commit29ca3215f391c8b1af866341e95c3249631f9679
tree4b3c1d416ab113dd8dd68b620d8e032b03372f5f
parent2fec07edd4bca7ead134a5a1b4672a682d6c6ad4
regex/mlx5: fix memory region unregistration

The issue can cause illegal physical address access while a huge-page A
is released and huge-page B is allocated on the same virtual address.
The old MR can be matched using the virtual address of huge-page B but
the HW will access the physical address of huge-page A which is no more
part of the DPDK process.

Register a driver callback for memory event in order to free out all the
MRs of memory that is going to be freed from the DPDK process.

Fixes: cda883bbb655 ("regex/mlx5: add dynamic memory registration to datapath")
Cc: stable@dpdk.org
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
drivers/regex/mlx5/mlx5_regex.c
drivers/regex/mlx5/mlx5_regex.h
drivers/regex/mlx5/mlx5_regex_control.c
drivers/regex/mlx5/mlx5_regex_fastpath.c