aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/core/cma.c')
-rw-r--r--drivers/infiniband/core/cma.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 17a15c56028c..43d5166db4c6 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -857,6 +857,8 @@ int rdma_init_qp_attr(struct rdma_cm_id *id, struct ib_qp_attr *qp_attr,
857 } else 857 } else
858 ret = iw_cm_init_qp_attr(id_priv->cm_id.iw, qp_attr, 858 ret = iw_cm_init_qp_attr(id_priv->cm_id.iw, qp_attr,
859 qp_attr_mask); 859 qp_attr_mask);
860 qp_attr->port_num = id_priv->id.port_num;
861 *qp_attr_mask |= IB_QP_PORT;
860 } else 862 } else
861 ret = -ENOSYS; 863 ret = -ENOSYS;
862 864
@@ -2578,7 +2580,8 @@ static int cma_bind_addr(struct rdma_cm_id *id, struct sockaddr *src_addr,
2578 if (!src_addr || !src_addr->sa_family) { 2580 if (!src_addr || !src_addr->sa_family) {
2579 src_addr = (struct sockaddr *) &id->route.addr.src_addr; 2581 src_addr = (struct sockaddr *) &id->route.addr.src_addr;
2580 src_addr->sa_family = dst_addr->sa_family; 2582 src_addr->sa_family = dst_addr->sa_family;
2581 if (dst_addr->sa_family == AF_INET6) { 2583 if (IS_ENABLED(CONFIG_IPV6) &&
2584 dst_addr->sa_family == AF_INET6) {
2582 struct sockaddr_in6 *src_addr6 = (struct sockaddr_in6 *) src_addr; 2585 struct sockaddr_in6 *src_addr6 = (struct sockaddr_in6 *) src_addr;
2583 struct sockaddr_in6 *dst_addr6 = (struct sockaddr_in6 *) dst_addr; 2586 struct sockaddr_in6 *dst_addr6 = (struct sockaddr_in6 *) dst_addr;
2584 src_addr6->sin6_scope_id = dst_addr6->sin6_scope_id; 2587 src_addr6->sin6_scope_id = dst_addr6->sin6_scope_id;
@@ -3348,6 +3351,9 @@ static int cma_accept_iw(struct rdma_id_private *id_priv,
3348 struct iw_cm_conn_param iw_param; 3351 struct iw_cm_conn_param iw_param;
3349 int ret; 3352 int ret;
3350 3353
3354 if (!conn_param)
3355 return -EINVAL;
3356
3351 ret = cma_modify_qp_rtr(id_priv, conn_param); 3357 ret = cma_modify_qp_rtr(id_priv, conn_param);
3352 if (ret) 3358 if (ret)
3353 return ret; 3359 return ret;