Skip to content
  • Andrew Boyer's avatar
    IB/rxe: Hold refs when running tasklets · 37f69f43
    Andrew Boyer authored
    
    
    It might be possible for all of a QP's references to be dropped
    while one of that QP's tasklets is running.
    
    For example, the completer might run during QP destroy.
    If qp->valid is false, it will drop all of the packets on
    the resp_pkts list, potentially removing the last reference.
    Then it tries to advance the SQ consumer pointer. If the
    SQ's buffer has already been destroyed, the system will
    panic.
    
    To be safe, hold a reference on the QP for the duration
    of each tasklet.
    
    Signed-off-by: default avatarAndrew Boyer <andrew.boyer@dell.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    37f69f43