OSDN Git Service

IB/mlx5: Fix device memory flows
authorYishai Hadas <yishaih@mellanox.com>
Thu, 12 Dec 2019 10:02:37 +0000 (12:02 +0200)
committerDoug Ledford <dledford@redhat.com>
Thu, 12 Dec 2019 21:55:36 +0000 (16:55 -0500)
commitdc2316eba73ff03da6dde082a372c6b5209304c5
treee114c03c6c585709ba9e95d26cd6033f5c841fbf
parent7a763d18ff2a75cfd1014800327f4120840bef09
IB/mlx5: Fix device memory flows

Fix device memory flows so that only once there will be no live mmaped
VA to a given allocation the matching object will be destroyed.

This prevents a potential scenario that existing VA that was mmaped by
one process might still be used post its deallocation despite that it's
owned now by other process.

The above is achieved by integrating with IB core APIs to manage
mmap/munmap. Only once the refcount will become 0 the DM object and its
underlay area will be freed.

Fixes: 3b113a1ec3d4 ("IB/mlx5: Support device memory type attribute")
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Link: https://lore.kernel.org/r/20191212100237.330654-3-leon@kernel.org
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx5/cmd.c
drivers/infiniband/hw/mlx5/cmd.h
drivers/infiniband/hw/mlx5/main.c
drivers/infiniband/hw/mlx5/mlx5_ib.h