From: Leon Romanovsky <leonro@xxxxxxxxxxxx> >From Parav, This series covers following changes. 1. A fix in RXE to consider right reserved space of the netdev. 2. ib_cm to avoid accessing netdev of GID attribute. 3. Several RoCE drivers and net/smc needs to know the mac and vlan of the GID entry. Instead of open coded accessing netdev fields, we introduce an API to get such fields filled up using new API rdma_read_gid_l2_fields(). 4. When there is active traffic through a GID, a QP/AH holds reference to this GID entry. GID entry holds reference to its attached netdevice. Due to this when netdevice (such as vlan netdev) is deleted by admin user, its refcount is not dropped. Therefore, use netdev under rcu lock so that netdev reference can be dropped when netdev and associated RoCE GID entry is deleted. This is facilitated by existing API rdma_read_gid_attr_ndev_rcu. Thanks Parav Pandit (7): RDMA/rxe: Consider skb reserve space based on netdev of GID IB/cm: Reduce dependency on gid attribute ndev check RDMA: Introduce and use GID attr helper to read RoCE L2 fields RDMA/cma: Use rdma_read_gid_attr_ndev_rcu to access netdev RDMA/rxe: Use rdma_read_gid_attr_ndev_rcu to access netdev net/smc: Use rdma_read_gid_l2_fields to L2 fields RDMA/core: Allow detaching gid attribute netdevice for RoCE drivers/infiniband/core/addr.c | 1 + drivers/infiniband/core/cache.c | 119 +++++++++++++++++++-- drivers/infiniband/core/cm.c | 5 +- drivers/infiniband/core/cma.c | 12 ++- drivers/infiniband/core/sysfs.c | 13 ++- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 18 ++-- drivers/infiniband/hw/hns/hns_roce_ah.c | 14 +-- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 7 +- drivers/infiniband/hw/mlx4/ah.c | 8 +- drivers/infiniband/hw/mlx4/qp.c | 6 +- drivers/infiniband/hw/mlx5/main.c | 42 ++------ drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 9 +- drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 7 +- drivers/infiniband/hw/qedr/qedr_roce_cm.c | 11 +- drivers/infiniband/hw/qedr/verbs.c | 5 +- drivers/infiniband/sw/rxe/rxe_net.c | 18 +++- include/rdma/ib_cache.h | 4 + include/rdma/ib_verbs.h | 2 +- net/smc/smc_ib.c | 16 +-- 19 files changed, 223 insertions(+), 94 deletions(-) -- 2.20.1