> On 22 Jun 2021, at 16:59, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > > On Tue, Jun 22, 2021 at 02:53:33PM +0000, Haakon Bugge wrote: >> >> >>> On 22 Jun 2021, at 16:47, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: >>> >>> On Tue, Jun 22, 2021 at 03:20:29PM +0200, Håkon Bugge wrote: >>>> In rdma_create_qp(), a connected QP will be transitioned to the INIT >>>> state. >>>> >>>> Afterwards, the QP will be transitioned to the RTR state by the >>>> cma_modify_qp_rtr() function. But this function starts by performing >>>> an ib_modify_qp() to the INIT state again, before another >>>> ib_modify_qp() is performed to transition the QP to the RTR state. >>> >>> This makes me really nervous that something depends on this since the >>> API is split up?? >> >> As I commented to Mark, no ULP creates a connected QP with >> rdma_create_qp() and thereafter modifies it with an INIT -> INIT >> transition. And if it did, the values modified would be overwritten >> by the (now) RESET -> INIT transition when cma_modify_qp_rtr() is >> called. > > Does anything call query_qp? iser_connected_handler() does, but that's when an RDMA_CM_EVENT_ESTABLISHED has been received, so the QP state is already RTS. Håkon