} /* eof for cur_send_wr */
 
 post_send_exit0:
-       /* UNLOCK the QUEUE */
-       spin_unlock_irqrestore(&my_qp->spinlock_s, flags);
        iosync(); /* serialize GAL register access */
        hipz_update_sqa(my_qp, wqe_cnt);
+       spin_unlock_irqrestore(&my_qp->spinlock_s, flags);
        return ret;
 }
 
        } /* eof for cur_recv_wr */
 
 post_recv_exit0:
-       spin_unlock_irqrestore(&my_qp->spinlock_r, flags);
        iosync(); /* serialize GAL register access */
        hipz_update_rqa(my_qp, wqe_cnt);
+       spin_unlock_irqrestore(&my_qp->spinlock_r, flags);
        return ret;
 }