>-----Original Message----- >From: linux-rdma-owner@xxxxxxxxxxxxxxx [mailto:linux-rdma- >owner@xxxxxxxxxxxxxxx] On Behalf Of Leon Romanovsky >Sent: Thursday, May 3, 2018 9:37 AM >To: Doug Ledford <dledford@xxxxxxxxxx>; Jason Gunthorpe ><jgg@xxxxxxxxxxxx> >Cc: Leon Romanovsky <leonro@xxxxxxxxxxxx>; RDMA mailing list <linux- >rdma@xxxxxxxxxxxxxxx>; Matan Barak <matanb@xxxxxxxxxxxx>; Yishai >Hadas <yishaih@xxxxxxxxxxxx> >Subject: [PATCH rdma-next 03/21] IB/uverbs: Declare uverbs idr and fd types >as static when no user access > >From: Matan Barak <matanb@xxxxxxxxxxxx> > >When CONFIG_INFINIBAND_USER_ACCESS is disabled, we need to declare >uverbs_idr_class and uverbs_fd_class. This is mandatory, as provider >drivers could use UVERBS_ATTR_FD and UVERBS_ATTR_IDR macros. >Exporting them as all zeros structures to allow compiling provider >drivers without being dependent on ib_uverbs. > >Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx> >Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> Reviewed-by: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx> >--- > drivers/infiniband/core/rdma_core.c | 2 ++ > include/rdma/uverbs_types.h | 5 +++++ > 2 files changed, 7 insertions(+) > >diff --git a/drivers/infiniband/core/rdma_core.c >b/drivers/infiniband/core/rdma_core.c >index a6e904973ba8..8035a0a7564c 100644 >--- a/drivers/infiniband/core/rdma_core.c >+++ b/drivers/infiniband/core/rdma_core.c >@@ -611,6 +611,7 @@ const struct uverbs_obj_type_class uverbs_idr_class = >{ > */ > .needs_kfree_rcu = true, > }; >+EXPORT_SYMBOL(uverbs_idr_class); > > static void _uverbs_close_fd(struct ib_uobject_file *uobj_file) > { >@@ -719,6 +720,7 @@ const struct uverbs_obj_type_class uverbs_fd_class = >{ > .remove_commit = remove_commit_fd_uobject, > .needs_kfree_rcu = false, > }; >+EXPORT_SYMBOL(uverbs_fd_class); > > struct ib_uobject *uverbs_get_uobject_from_context(const struct >uverbs_obj_type *type_attrs, > struct ib_ucontext >*ucontext, >diff --git a/include/rdma/uverbs_types.h b/include/rdma/uverbs_types.h >index cc04ec65588d..7c6d1e99c010 100644 >--- a/include/rdma/uverbs_types.h >+++ b/include/rdma/uverbs_types.h >@@ -147,8 +147,13 @@ struct uverbs_obj_fd_type { > int flags; > }; > >+#if IS_ENABLED(CONFIG_INFINIBAND_USER_ACCESS) > extern const struct uverbs_obj_type_class uverbs_idr_class; > extern const struct uverbs_obj_type_class uverbs_fd_class; >+#else >+static const struct uverbs_obj_type_class uverbs_idr_class = {}; >+static const struct uverbs_obj_type_class uverbs_fd_class = {}; >+#endif > > #define UVERBS_BUILD_BUG_ON(cond) (sizeof(char[1 - 2 * !!(cond)]) - > \ > sizeof(char)) >-- >2.14.3 > >-- >To unsubscribe from this list: send the line "unsubscribe linux-rdma" in >the body of a message to majordomo@xxxxxxxxxxxxxxx >More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html