diff options
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r-- | drivers/infiniband/core/roce_gid_mgmt.c | 18 | ||||
-rw-r--r-- | drivers/infiniband/core/verbs.c | 67 |
2 files changed, 8 insertions, 77 deletions
diff --git a/drivers/infiniband/core/roce_gid_mgmt.c b/drivers/infiniband/core/roce_gid_mgmt.c index 6eecdfbf3aef..6b24cba1e474 100644 --- a/drivers/infiniband/core/roce_gid_mgmt.c +++ b/drivers/infiniband/core/roce_gid_mgmt.c @@ -529,7 +529,7 @@ static const struct netdev_event_work_cmd add_cmd = { static const struct netdev_event_work_cmd add_cmd_upper_ips = { .cb = add_netdev_upper_ips, .filter = is_eth_port_of_netdev}; -static void netdevice_event_changeupper(struct netdev_changeupper_info *changeupper_info, +static void netdevice_event_changeupper(struct netdev_notifier_changeupper_info *changeupper_info, struct netdev_event_work_cmd *cmds) { static const struct netdev_event_work_cmd upper_ips_del_cmd = { @@ -537,18 +537,16 @@ static void netdevice_event_changeupper(struct netdev_changeupper_info *changeup static const struct netdev_event_work_cmd bonding_default_del_cmd = { .cb = del_netdev_default_ips, .filter = is_eth_port_inactive_slave}; - if (changeupper_info->event == - NETDEV_CHANGEUPPER_UNLINK) { + if (changeupper_info->linking == false) { cmds[0] = upper_ips_del_cmd; - cmds[0].ndev = changeupper_info->upper; + cmds[0].ndev = changeupper_info->upper_dev; cmds[1] = add_cmd; - } else if (changeupper_info->event == - NETDEV_CHANGEUPPER_LINK) { + } else { cmds[0] = bonding_default_del_cmd; - cmds[0].ndev = changeupper_info->upper; + cmds[0].ndev = changeupper_info->upper_dev; cmds[1] = add_cmd_upper_ips; - cmds[1].ndev = changeupper_info->upper; - cmds[1].filter_ndev = changeupper_info->upper; + cmds[1].ndev = changeupper_info->upper_dev; + cmds[1].filter_ndev = changeupper_info->upper_dev; } } @@ -590,7 +588,7 @@ static int netdevice_event(struct notifier_block *this, unsigned long event, case NETDEV_CHANGEUPPER: netdevice_event_changeupper( - container_of(ptr, struct netdev_changeupper_info, info), + container_of(ptr, struct netdev_notifier_changeupper_info, info), cmds); break; diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c index aad8b3ce66cc..e1f2c9887f3f 100644 --- a/drivers/infiniband/core/verbs.c +++ b/drivers/infiniband/core/verbs.c @@ -1195,73 +1195,6 @@ struct ib_mr *ib_get_dma_mr(struct ib_pd *pd, int mr_access_flags) } EXPORT_SYMBOL(ib_get_dma_mr); -struct ib_mr *ib_reg_phys_mr(struct ib_pd *pd, - struct ib_phys_buf *phys_buf_array, - int num_phys_buf, - int mr_access_flags, - u64 *iova_start) -{ - struct ib_mr *mr; - int err; - - err = ib_check_mr_access(mr_access_flags); - if (err) - return ERR_PTR(err); - - if (!pd->device->reg_phys_mr) - return ERR_PTR(-ENOSYS); - - mr = pd->device->reg_phys_mr(pd, phys_buf_array, num_phys_buf, - mr_access_flags, iova_start); - - if (!IS_ERR(mr)) { - mr->device = pd->device; - mr->pd = pd; - mr->uobject = NULL; - atomic_inc(&pd->usecnt); - atomic_set(&mr->usecnt, 0); - } - - return mr; -} -EXPORT_SYMBOL(ib_reg_phys_mr); - -int ib_rereg_phys_mr(struct ib_mr *mr, - int mr_rereg_mask, - struct ib_pd *pd, - struct ib_phys_buf *phys_buf_array, - int num_phys_buf, - int mr_access_flags, - u64 *iova_start) -{ - struct ib_pd *old_pd; - int ret; - - ret = ib_check_mr_access(mr_access_flags); - if (ret) - return ret; - - if (!mr->device->rereg_phys_mr) - return -ENOSYS; - - if (atomic_read(&mr->usecnt)) - return -EBUSY; - - old_pd = mr->pd; - - ret = mr->device->rereg_phys_mr(mr, mr_rereg_mask, pd, - phys_buf_array, num_phys_buf, - mr_access_flags, iova_start); - - if (!ret && (mr_rereg_mask & IB_MR_REREG_PD)) { - atomic_dec(&old_pd->usecnt); - atomic_inc(&pd->usecnt); - } - - return ret; -} -EXPORT_SYMBOL(ib_rereg_phys_mr); - int ib_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr) { return mr->device->query_mr ? |