Merge tag 'v5.2-rc6' into rdma.git for-next
For dependencies in next patches. Resolve conflicts: - Use uverbs_get_cleared_udata() with new cq allocation flow - Continue to delete nes despite SPDX conflict - Resolve list appends in mlx5_command_str() - Use u16 for vport_rule stuff - Resolve list appends in struct ib_client Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
@@ -138,9 +138,11 @@ int efa_com_destroy_qp(struct efa_com_dev *edev,
|
||||
sizeof(qp_cmd),
|
||||
(struct efa_admin_acq_entry *)&cmd_completion,
|
||||
sizeof(cmd_completion));
|
||||
if (err)
|
||||
if (err) {
|
||||
ibdev_err(edev->efa_dev, "Failed to destroy qp-%u [%d]\n",
|
||||
qp_cmd.qp_handle, err);
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -198,9 +200,11 @@ int efa_com_destroy_cq(struct efa_com_dev *edev,
|
||||
(struct efa_admin_acq_entry *)&destroy_resp,
|
||||
sizeof(destroy_resp));
|
||||
|
||||
if (err)
|
||||
if (err) {
|
||||
ibdev_err(edev->efa_dev, "Failed to destroy CQ-%u [%d]\n",
|
||||
params->cq_idx, err);
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -272,10 +276,12 @@ int efa_com_dereg_mr(struct efa_com_dev *edev,
|
||||
sizeof(mr_cmd),
|
||||
(struct efa_admin_acq_entry *)&cmd_completion,
|
||||
sizeof(cmd_completion));
|
||||
if (err)
|
||||
if (err) {
|
||||
ibdev_err(edev->efa_dev,
|
||||
"Failed to de-register mr(lkey-%u) [%d]\n",
|
||||
mr_cmd.l_key, err);
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -327,9 +333,11 @@ int efa_com_destroy_ah(struct efa_com_dev *edev,
|
||||
sizeof(ah_cmd),
|
||||
(struct efa_admin_acq_entry *)&cmd_completion,
|
||||
sizeof(cmd_completion));
|
||||
if (err)
|
||||
if (err) {
|
||||
ibdev_err(edev->efa_dev, "Failed to destroy ah-%d pd-%d [%d]\n",
|
||||
ah_cmd.ah, ah_cmd.pd, err);
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -387,10 +395,12 @@ static int efa_com_get_feature_ex(struct efa_com_dev *edev,
|
||||
get_resp,
|
||||
sizeof(*get_resp));
|
||||
|
||||
if (err)
|
||||
if (err) {
|
||||
ibdev_err(edev->efa_dev,
|
||||
"Failed to submit get_feature command %d [%d]\n",
|
||||
feature_id, err);
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -534,10 +544,12 @@ static int efa_com_set_feature_ex(struct efa_com_dev *edev,
|
||||
(struct efa_admin_acq_entry *)set_resp,
|
||||
sizeof(*set_resp));
|
||||
|
||||
if (err)
|
||||
if (err) {
|
||||
ibdev_err(edev->efa_dev,
|
||||
"Failed to submit set_feature command %d error: %d\n",
|
||||
feature_id, err);
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -204,6 +204,7 @@ static u64 mmap_entry_insert(struct efa_dev *dev, struct efa_ucontext *ucontext,
|
||||
void *obj, u64 address, u64 length, u8 mmap_flag)
|
||||
{
|
||||
struct efa_mmap_entry *entry;
|
||||
u32 next_mmap_page;
|
||||
int err;
|
||||
|
||||
entry = kmalloc(sizeof(*entry), GFP_KERNEL);
|
||||
@@ -216,15 +217,19 @@ static u64 mmap_entry_insert(struct efa_dev *dev, struct efa_ucontext *ucontext,
|
||||
entry->mmap_flag = mmap_flag;
|
||||
|
||||
xa_lock(&ucontext->mmap_xa);
|
||||
if (check_add_overflow(ucontext->mmap_xa_page,
|
||||
(u32)(length >> PAGE_SHIFT),
|
||||
&next_mmap_page))
|
||||
goto err_unlock;
|
||||
|
||||
entry->mmap_page = ucontext->mmap_xa_page;
|
||||
ucontext->mmap_xa_page += DIV_ROUND_UP(length, PAGE_SIZE);
|
||||
ucontext->mmap_xa_page = next_mmap_page;
|
||||
err = __xa_insert(&ucontext->mmap_xa, entry->mmap_page, entry,
|
||||
GFP_KERNEL);
|
||||
if (err)
|
||||
goto err_unlock;
|
||||
|
||||
xa_unlock(&ucontext->mmap_xa);
|
||||
if (err){
|
||||
kfree(entry);
|
||||
return EFA_MMAP_INVALID;
|
||||
}
|
||||
|
||||
ibdev_dbg(
|
||||
&dev->ibdev,
|
||||
@@ -232,6 +237,12 @@ static u64 mmap_entry_insert(struct efa_dev *dev, struct efa_ucontext *ucontext,
|
||||
entry->obj, entry->address, entry->length, get_mmap_key(entry));
|
||||
|
||||
return get_mmap_key(entry);
|
||||
|
||||
err_unlock:
|
||||
xa_unlock(&ucontext->mmap_xa);
|
||||
kfree(entry);
|
||||
return EFA_MMAP_INVALID;
|
||||
|
||||
}
|
||||
|
||||
int efa_query_device(struct ib_device *ibdev,
|
||||
@@ -1628,7 +1639,6 @@ int efa_mmap(struct ib_ucontext *ibucontext,
|
||||
ibdev_dbg(&dev->ibdev, "Mapping executable pages is not permitted\n");
|
||||
return -EPERM;
|
||||
}
|
||||
vma->vm_flags &= ~VM_MAYEXEC;
|
||||
|
||||
return __efa_mmap(dev, ucontext, vma, key, length);
|
||||
}
|
||||
|
Reference in New Issue
Block a user