summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorJason Gunthorpe <jgg@mellanox.com>2020-01-08 18:21:54 +0100
committerJason Gunthorpe <jgg@mellanox.com>2020-01-13 21:17:19 +0100
commitf7c8416ccea52b41e29227b3a5066540f51ee471 (patch)
tree4d18cf6136d18567f13180fa7a8e196be866ef97 /virt
parentRDMA/mlx5: Use RCU and direct refcounts to keep memory alive (diff)
downloadlinux-f7c8416ccea52b41e29227b3a5066540f51ee471.tar.xz
linux-f7c8416ccea52b41e29227b3a5066540f51ee471.zip
RDMA/core: Simplify destruction of FD uobjects
FD uobjects have a weird split between the struct file and uobject world. Simplify this to make them pure uobjects and use a generic release method for all struct file operations. This fixes the control flow so that mlx5_cmd_cleanup_async_ctx() is always called before erasing the linked list contents to make the concurrancy simpler to understand. For this to work the uobject destruction must fence anything that it is cleaning up - the design must not rely on struct file lifetime. Only deliver_event() relies on the struct file to when adding new events to the queue, add a is_destroyed check under lock to block it. Link: https://lore.kernel.org/r/1578504126-9400-3-git-send-email-yishaih@mellanox.com Signed-off-by: Yishai Hadas <yishaih@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions