From: Leon Romanovsky <leonro@xxxxxxxxxxxx> Changelog: v1->v2: * Added "Fortify .." atch, it helps to find uninitialized paths * Rewrote ".doit" patch v0->v1: * Don't set mark in case restrack entry failed to be added * Fix typos * Move kdoc comments from restrack.h to restrack.c * Rewrote user/kernel marking patch to drop xa_set_mark in favour of "user" field * Fixed two panics with uninitialized values, one for QPs and another for ibdev in CM_ID -------------------------------------------------------------------- The series convert internal restrack DB implementation from hash-based to be XArray-based. Such change is needed to allow access per specific index for .doit callbacks. In addition, such index will provide ability to bind/unbind counters to specific QPs, provide valuable debug information about parent object (e.g. PD of specific QP, or context of specific PD) and get list of objects connected to specific context. Thanks Leon Romanovsky (17): RDMA/nldev: Dynamically generate restrack dumpit callbacks RDMA/nldev: Refactor out PID namespace check RDMA/nldev: Prepare CAP_NET_ADMIN checks for .doit callbacks RDMA/nldev: Prepare code for per-port/per-device separation RDMA/restrack: Convert internal DB from hash to XArray RDMA/core: Simplify restrack interface RDMA/restrack: Translate from ID to restrack object RDMA/nldev: Add resource tracker doit callback RDMA/restrack: Reduce scope of synchronization lock while updating DB RDMA/core: Use ops infrastructure to keep all callbacks in one place RDMA/restrack: Hide restrack DB from IB/core RDMA/restrack: Prepare restrack_root to addition of extra fields per-type RDMA/restrack: Refactor user/kernel restrack additions RDMA/restrack: Introduce range support for IDs RDMA/restrack: Implement software ID interface RDMA/restrack: Add restrack wrappers to set/get ID and type RDMA/restrack: Fortify source by ensuring that restrack type is set drivers/infiniband/core/cma.c | 8 +- drivers/infiniband/core/core_priv.h | 2 +- drivers/infiniband/core/device.c | 8 +- drivers/infiniband/core/nldev.c | 320 +++++++------ drivers/infiniband/core/restrack.c | 422 +++++++++++++++--- drivers/infiniband/core/uverbs_cmd.c | 8 +- drivers/infiniband/core/uverbs_std_types_cq.c | 2 +- drivers/infiniband/core/verbs.c | 6 +- drivers/infiniband/hw/cxgb4/provider.c | 2 +- drivers/infiniband/hw/cxgb4/restrack.c | 2 +- include/rdma/ib_verbs.h | 12 +- include/rdma/rdma_cm.h | 2 +- include/rdma/restrack.h | 117 ++--- 13 files changed, 652 insertions(+), 259 deletions(-) -- 2.19.1