From: Leon Romanovsky <leonro@xxxxxxxxxxxx> >From Parav, This series refactors the code of ib_register_device() and ib_unregister_device() to reuse it in helper function for performing mini unregistration-registration sequence. Followed by that, it adds a helper function to change net namespace of rdma device. This is done ether when netlink command is received or when the net namespace is deleted, where device moves back to default init_net net namespace. This unregistration-registration sequence ensures that all traffic has stopped on a specified rdma device. Currently net namespce of those rdma devices can be changed, which doesn't register theirn own port specific init functions and which support disassociating a user context. Once infrastructure callback API port_uninit() is developed, this limitation will be removed. Thanks Parav Pandit (7): RDMA: Rename port_callback to port_init RDMA/core: Introduce and use helper functions for clients add/removal RDMA/core: Introduce helper functions for cache cleanup, update RDMA/core: Introduce a helper function to change net namespace of rdma device RDMA/core: Move rdma device to init_net when net ns is deleted IB/ipoib: Read net namespace of parent rdma device and set for netdev RDMA/nldev: Add RDMA netlink cmd to change IB device net namespace Documentation/infiniband/core_devices.txt | 2 +- drivers/infiniband/core/cache.c | 25 ++- drivers/infiniband/core/core_priv.h | 12 +- drivers/infiniband/core/device.c | 192 ++++++++++++++---- drivers/infiniband/core/net_namespace.c | 29 +++ drivers/infiniband/core/nldev.c | 9 + drivers/infiniband/core/sysfs.c | 6 +- drivers/infiniband/hw/bnxt_re/main.c | 2 +- drivers/infiniband/hw/cxgb3/iwch_provider.c | 2 +- drivers/infiniband/hw/cxgb4/provider.c | 2 +- drivers/infiniband/hw/hfi1/verbs.c | 2 +- drivers/infiniband/hw/hns/hns_roce_main.c | 2 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 2 +- drivers/infiniband/hw/mlx4/main.c | 2 +- drivers/infiniband/hw/mlx5/main.c | 2 +- drivers/infiniband/hw/mthca/mthca_provider.c | 2 +- drivers/infiniband/hw/nes/nes_verbs.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_main.c | 2 +- drivers/infiniband/hw/qedr/main.c | 2 +- drivers/infiniband/hw/qib/qib_verbs.c | 2 +- drivers/infiniband/hw/usnic/usnic_ib_main.c | 2 +- .../infiniband/hw/vmw_pvrdma/pvrdma_main.c | 2 +- drivers/infiniband/sw/rdmavt/vt.c | 5 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 2 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 1 + include/rdma/ib_verbs.h | 11 +- include/rdma/rdma_vt.h | 3 - include/uapi/rdma/rdma_netlink.h | 5 + 28 files changed, 246 insertions(+), 86 deletions(-) -- 2.19.1