IB/ipath: Fix two more spin lock problems
authorRalph Campbell <ralphc@pathscale.com>
Thu, 3 May 2007 19:40:51 +0000 (12:40 -0700)
committerRoland Dreier <rolandd@cisco.com>
Mon, 7 May 2007 04:18:11 +0000 (21:18 -0700)
Fix a missing unlock in ipath_rc_rcv_resp() and remove an extra unlock
from ipath_rc_rcv_error().

Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/ipath/ipath_rc.c

index 9e68c91130ddd899bcb251ae4fa97ba66fc037b1..f4d729d5dd1a6565d05ad66477fa99dece470320 100644 (file)
@@ -1257,6 +1257,7 @@ ack_err:
        wc.dlid_path_bits = 0;
        wc.port_num = 0;
        ipath_sqerror_qp(qp, &wc);
+       spin_unlock_irqrestore(&qp->s_lock, flags);
 bail:
        return;
 }
@@ -1436,7 +1437,6 @@ static inline int ipath_rc_rcv_error(struct ipath_ibdev *dev,
                break;
        }
        qp->r_nak_state = 0;
-       spin_unlock_irq(&qp->s_lock);
        tasklet_hi_schedule(&qp->s_task);
 
 unlock_done: