*/
                if (WARN_ON(wc->wr_cqe->done != rtrs_clt_rdma_done))
                        return;
+               clt_path->s.hb_missed_cnt = 0;
                rtrs_from_imm(be32_to_cpu(wc->ex.imm_data),
                               &imm_type, &imm_payload);
                if (imm_type == RTRS_IO_RSP_IMM ||
                                return  rtrs_clt_recv_done(con, wc);
                } else if (imm_type == RTRS_HB_ACK_IMM) {
                        WARN_ON(con->c.cid);
-                       clt_path->s.hb_missed_cnt = 0;
                        clt_path->s.hb_cur_latency =
                                ktime_sub(ktime_get(), clt_path->s.hb_last_sent);
                        if (clt_path->flags & RTRS_MSG_NEW_RKEY_F)
                /*
                 * Key invalidations from server side
                 */
+               clt_path->s.hb_missed_cnt = 0;
                WARN_ON(!(wc->wc_flags & IB_WC_WITH_INVALIDATE ||
                          wc->wc_flags & IB_WC_WITH_IMM));
                WARN_ON(wc->wr_cqe->done != rtrs_clt_rdma_done);
 
                 */
                if (WARN_ON(wc->wr_cqe != &io_comp_cqe))
                        return;
+               srv_path->s.hb_missed_cnt = 0;
                err = rtrs_post_recv_empty(&con->c, &io_comp_cqe);
                if (err) {
                        rtrs_err(s, "rtrs_post_recv(), err: %d\n", err);