user verbs question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We have run into an issue with perftest and the user verbs libraries. 

An {qib,hfi1} create_cq fails because of a driver limit in created a recv_cq for perftest.   We found this with new UD and UC tests.

We can increase the limit, but.

perftest runs on after having failed to create a  recv_cq:
and passes a NULL attr->recv_cq to the user libraries:

        if (create_cqs(ctx, user_param)) {
                fprintf(stderr, "Failed to create CQs\n");
                /* no return FAILUE */
        }

recv_cq is then NULL in a create_qp exposing issues with:

int ibv_cmd_create_qp(struct ibv_pd *pd,
                      struct ibv_qp *qp, struct ibv_qp_init_attr *attr,
                      struct ibv_create_qp *cmd, size_t cmd_size,
                      struct ibv_create_qp_resp *resp, size_t resp_size)
{
        IBV_INIT_CMD_RESP(cmd, cmd_size, CREATE_QP, resp, resp_size);

        cmd->user_handle     = (uintptr_t) qp;
        cmd->pd_handle       = pd->handle;
        cmd->send_cq_handle  = attr->send_cq->handle; <- potential NULL derefs
        cmd->recv_cq_handle  = attr->recv_cq->handle;

If either the send_cq or recv_cq are NULL, the job will seqfault.

This could have been checked before the deref here, but other spots in the code lack similar parameter validation.

Comments?

Mike

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux