From: Leon Romanovsky <leonro@xxxxxxxxxxxx> Hi, New series from Parav and Jason: ------------------ Now that we have stable pointers to the gid_attrs in the GID table, we can replace lookups in the cache with pointer de-references throughout the stack from the core to the drivers. HW objects that touch gid entires will hold a reference to the gid_attrs for their lifetime. In RoCE mode this prevents reuse of the GID index while there is an active user, which prevents a security/functional issue around re-assigned GID table entries. After this series there is only one driver call remaining to the GID cache (in RXE receive) and driver use of the grh.sgid_index has been substantially reduced. Thanks Jason Gunthorpe (3): IB/core: Add a sgid_attr pointer to struct rdma_ah_attr IB{cm, core}: Introduce and use ah_attr copy, move, replace APIs RDMA: Hold the sgid_attr inside the struct ib_ah/qp Parav Pandit (5): IB: Ensure that all rdma_ah_attr's are zero initialized IB/core: Tidy ib_resolve_eth_dmac RDMA: Convert drivers to use sgid_attr instead of sgid_index IB/mlx4: Use GID attribute from ah attribute RDMA: Convert drivers to use the AH's sgid_attr in post_wr paths drivers/infiniband/core/cm.c | 4 +- drivers/infiniband/core/uverbs_cmd.c | 4 +- drivers/infiniband/core/verbs.c | 368 +++++++++++++++++++++++++++--- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 94 +++----- drivers/infiniband/hw/hns/hns_roce_ah.c | 19 +- drivers/infiniband/hw/mlx4/ah.c | 20 +- drivers/infiniband/hw/mlx4/main.c | 20 +- drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +- drivers/infiniband/hw/mlx4/qp.c | 30 +-- drivers/infiniband/hw/mlx5/ah.c | 11 +- drivers/infiniband/hw/mlx5/main.c | 32 +-- drivers/infiniband/hw/mlx5/mlx5_ib.h | 6 +- drivers/infiniband/hw/mlx5/qp.c | 10 +- drivers/infiniband/hw/mthca/mthca_av.c | 5 +- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 24 +- drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 21 +- drivers/infiniband/hw/qedr/qedr_roce_cm.c | 25 +- drivers/infiniband/hw/qedr/verbs.c | 25 +- drivers/infiniband/sw/rdmavt/ah.c | 4 +- drivers/infiniband/sw/rdmavt/qp.c | 6 +- drivers/infiniband/sw/rxe/rxe_av.c | 11 +- drivers/infiniband/sw/rxe/rxe_loc.h | 5 +- drivers/infiniband/sw/rxe/rxe_qp.c | 23 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 31 +-- include/rdma/ib_verbs.h | 24 +- 25 files changed, 480 insertions(+), 344 deletions(-) -- 2.14.4 -- 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