]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - drivers/infiniband/core/uverbs.h
IB/uverbs: Don't serialize with ib_uverbs_idr_mutex
[linux-2.6.git] / drivers / infiniband / core / uverbs.h
index 3372d67ff139eb51232f96ad287e50608e5998ef..bb9bee56a824a9ea5b1da2417a882a12aab11f16 100644 (file)
@@ -132,7 +132,7 @@ struct ib_ucq_object {
        u32                     async_events_reported;
 };
 
        u32                     async_events_reported;
 };
 
-extern struct mutex ib_uverbs_idr_mutex;
+extern spinlock_t ib_uverbs_idr_lock;
 extern struct idr ib_uverbs_pd_idr;
 extern struct idr ib_uverbs_mr_idr;
 extern struct idr ib_uverbs_mw_idr;
 extern struct idr ib_uverbs_pd_idr;
 extern struct idr ib_uverbs_mr_idr;
 extern struct idr ib_uverbs_mw_idr;
@@ -141,6 +141,8 @@ extern struct idr ib_uverbs_cq_idr;
 extern struct idr ib_uverbs_qp_idr;
 extern struct idr ib_uverbs_srq_idr;
 
 extern struct idr ib_uverbs_qp_idr;
 extern struct idr ib_uverbs_srq_idr;
 
+void idr_remove_uobj(struct idr *idp, struct ib_uobject *uobj);
+
 struct file *ib_uverbs_alloc_event_file(struct ib_uverbs_file *uverbs_file,
                                        int is_async, int *fd);
 void ib_uverbs_release_event_file(struct kref *ref);
 struct file *ib_uverbs_alloc_event_file(struct ib_uverbs_file *uverbs_file,
                                        int is_async, int *fd);
 void ib_uverbs_release_event_file(struct kref *ref);