@@ -31,6 +31,7 @@
*/
#include "rdma_core.h"
+#include "restrack.h"
#include "uverbs.h"
#include <rdma/uverbs_std_types.h>
@@ -134,6 +135,15 @@ static int UVERBS_HANDLER(UVERBS_METHOD_DM_MR_REG)(
atomic_inc(&pd->usecnt);
atomic_inc(&dm->usecnt);
+ rdma_restrack_new(&mr->res, RDMA_RESTRACK_MR);
+ rdma_restrack_set_name(&mr->res, NULL);
+ ret = rdma_restrack_add(&mr->res);
+ if (ret) {
+ rdma_restrack_put(&mr->res);
+ pd->device->ops.dereg_mr(mr, &attrs->driver_udata);
+ return ret;
+ }
+
uobj->object = mr;
uverbs_finalize_uobj_create(attrs, UVERBS_ATTR_REG_DM_MR_HANDLE);