• Bob Pearson's avatar
    RDMA/rxe: Remove qp reference counting in tasks · a246aa2e
    Bob Pearson authored
    Currently each of the three tasklets requester, completer and responder in
    the rxe driver take and release a reference to the qp argument at the
    beginning and end of the subroutines. The caller passing in the qp
    argument should be responsible for holding a reference to qp so these are
    not required. Further doing so breaks the qp cleanup code in
    rxe_qp_do_cleanup which calls these routines after all the references have
    been dropped so they cannot drain the packet and work request queues as
    intended.
    
    In fact if these routines are deferred by calling tasklet_schedule there
    is no guarantee that the calling code does have a qp reference.  That is a
    bug in rxe_task.c which will be fixed later in this series.
    
    Link: https://lore.kernel.org/r/20230304174533.11296-6-rpearsonhpe@gmail.comSigned-off-by: default avatarBob Pearson <rpearsonhpe@gmail.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
    a246aa2e
rxe_resp.c 38.9 KB