RDMA/core: Check for verbs callbacks before using them
Make sure the providers implement the verbs callbacks before calling them, otherwise return -EOPNOTSUPP. Signed-off-by: Kamal Heib <kamalheib1@gmail.com> Reviewed-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
committed by
Jason Gunthorpe
parent
7150c3d554
commit
0584c47bbc
@@ -2504,7 +2504,8 @@ ssize_t ib_uverbs_post_srq_recv(struct ib_uverbs_file *file,
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
resp.bad_wr = 0;
|
resp.bad_wr = 0;
|
||||||
ret = srq->device->post_srq_recv(srq, wr, &bad_wr);
|
ret = srq->device->post_srq_recv ?
|
||||||
|
srq->device->post_srq_recv(srq, wr, &bad_wr) : -EOPNOTSUPP;
|
||||||
|
|
||||||
uobj_put_obj_read(srq);
|
uobj_put_obj_read(srq);
|
||||||
|
|
||||||
|
|||||||
@@ -479,6 +479,9 @@ static struct ib_ah *_rdma_create_ah(struct ib_pd *pd,
|
|||||||
{
|
{
|
||||||
struct ib_ah *ah;
|
struct ib_ah *ah;
|
||||||
|
|
||||||
|
if (!pd->device->create_ah)
|
||||||
|
return ERR_PTR(-EOPNOTSUPP);
|
||||||
|
|
||||||
ah = pd->device->create_ah(pd, ah_attr, udata);
|
ah = pd->device->create_ah(pd, ah_attr, udata);
|
||||||
|
|
||||||
if (!IS_ERR(ah)) {
|
if (!IS_ERR(ah)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user