--- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -1021,6 +1021,9 @@ int rdma_init_qp_attr(struct rdma_cm_id *id, struct ib_qp_attr *qp_attr, struct rdma_id_private *id_priv; int ret = 0; + if (!id->device) + return -EINVAL; + id_priv = container_of(id, struct rdma_id_private, id); if (rdma_cap_ib_cm(id->device, id->port_num)) { if (!id_priv->cm_id.ib || (id_priv->id.qp_type == IB_QPT_UD))