- if (msg->ptlm_dststamp != kptllnd_data.kptl_incarnation &&
- (msg->ptlm_type != PTLLND_MSG_TYPE_HELLO || /* HELLO sends a */
- msg->ptlm_dststamp != 0)) { /* zero dststamp */
- CERROR("Stale rx from %s dststamp "LPX64" expected "LPX64"\n",
- libcfs_id2str(peer->peer_id), msg->ptlm_dststamp,
- kptllnd_data.kptl_incarnation);
+ LASSERTF (LNET_NIDADDR(msg->ptlm_srcnid) ==
+ LNET_NIDADDR(peer->peer_id.nid), "m %s p %s\n",
+ libcfs_nid2str(msg->ptlm_srcnid),
+ libcfs_nid2str(peer->peer_id.nid));
+ LASSERTF (msg->ptlm_srcpid == peer->peer_id.pid, "m %u p %u\n",
+ msg->ptlm_srcpid, peer->peer_id.pid);
+
+ cfs_spin_lock_irqsave(&peer->peer_lock, flags);
+
+ /* Check peer only sends when I've sent her credits */
+ if (peer->peer_sent_credits == 0) {
+ int c = peer->peer_credits;
+ int oc = peer->peer_outstanding_credits;
+ int sc = peer->peer_sent_credits;
+
+ cfs_spin_unlock_irqrestore(&peer->peer_lock, flags);
+
+ CERROR("%s: buffer overrun [%d/%d+%d]\n",
+ libcfs_id2str(peer->peer_id), c, sc, oc);