From: Parav Pandit <parav@xxxxxxxxxxxx> This series introduces a netlink command to change net namespace of a rdma device. It performs small device disable enable sequence to ensure that there is no active traffic when device moves to new namespace. This operation needs to synchronize with device rename and device unregistration. This is protected using recently introduced unregistration mutex. --- Changelog: --- v1->v2: - Addressed comments from Jason and took simplifications suggested - Comments to start on next line - Dropped detailed comment around device refcounting - merged net ns change code during net exit to single function - Using common function during netns change and exit net path - Error unwinding path enables the device while net ns change - Protecting rdma_rename with device_rwsem - Added kobject remove add notifications v0->v1: - Addressed comments from Jason. - Added accidentally removed xa_erase - Moved free_netdevs() out of disable_device for wider use - Replace refcount get/put from add_compat_devs with lock assert - Added ibdev->dev get/put to hold on to device while net ns delete - Corrected comments in __rdma_dev_change_netns for rename op Parav Pandit (3): RDMA/core: Avoid freeing netdevs in disable_device() RDMA/core: Introduce a helper function to change net namespace of rdma device RDMA/core: Add netlink command to change net namespace of rdma device drivers/infiniband/core/core_priv.h | 2 + drivers/infiniband/core/device.c | 130 +++++++++++++++++++++++++++- drivers/infiniband/core/nldev.c | 13 ++- include/uapi/rdma/rdma_netlink.h | 6 +- 4 files changed, 146 insertions(+), 5 deletions(-) -- 2.19.2