aboutsummaryrefslogtreecommitdiffstats
path: root/include/rdma/uverbs_types.h
diff options
context:
space:
mode:
authorJason Gunthorpe <jgg@mellanox.com>2020-01-13 14:33:10 +0000
committerJason Gunthorpe <jgg@mellanox.com>2020-01-13 16:17:18 -0400
commit8bdf9dd984c18375d1090ddeb1792511f619c5c1 (patch)
treef5fe75a0e22cc09ccb4518668d5525dddc60f796 /include/rdma/uverbs_types.h
parentIB/mlx5: Add mmap support for VAR (diff)
downloadlinux-dev-8bdf9dd984c18375d1090ddeb1792511f619c5c1.tar.xz
linux-dev-8bdf9dd984c18375d1090ddeb1792511f619c5c1.zip
RDMA/uverbs: Remove needs_kfree_rcu from uverbs_obj_type_class
After device disassociation the uapi_objects are destroyed and freed, however it is still possible that core code can be holding a kref on the uobject. When it finally goes to uverbs_uobject_free() via the kref_put() it can trigger a use-after-free on the uapi_object. Since needs_kfree_rcu is a micro optimization that only benefits file uobjects, just get rid of it. There is no harm in using kfree_rcu even if it isn't required, and the number of involved objects is small. Link: https://lore.kernel.org/r/20200113143306.GA28717@ziepe.ca Signed-off-by: Michael Guralnik <michaelgur@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to '')
-rw-r--r--include/rdma/uverbs_types.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/include/rdma/uverbs_types.h b/include/rdma/uverbs_types.h
index d57a5ba00c74..0b0f5a5f392d 100644
--- a/include/rdma/uverbs_types.h
+++ b/include/rdma/uverbs_types.h
@@ -98,7 +98,6 @@ struct uverbs_obj_type_class {
enum rdma_remove_reason why,
struct uverbs_attr_bundle *attrs);
void (*remove_handle)(struct ib_uobject *uobj);
- u8 needs_kfree_rcu;
};
struct uverbs_obj_type {