[ewg] IB/ipoib: ipoib_ib_post_receive: infinite loop in error path

Hoang-Nam Nguyen hnguyen at linux.vnet.ibm.com
Fri Feb 8 07:10:23 PST 2008


Hello Eli!
Looked at ipoib code from ofed-1.3-rc4 and the saw the following code snippet
in ipoib_ib_post_receive():

	if (++priv->rx_outst == UD_POST_RCV_COUNT) {
		ret = ib_post_recv(priv->qp, priv->rx_wr_draft, &bad_wr);

		if (unlikely(ret)) {
			ipoib_warn(priv, "receive failed for buf %d (%d)\n", id, ret);
			while (bad_wr) {
				id = bad_wr->wr_id & ~IPOIB_OP_RECV;
				ipoib_sg_dma_unmap_rx(priv,
						      priv->rx_ring[i].mapping);
#1/ipoib_0240_4kmtu.patch: should be priv->rx_ring[id].mapping
				dev_kfree_skb_any(priv->rx_ring[id].skb);
				priv->rx_ring[id].skb = NULL;
#2/ipoib_0220_ud_post_list.patch: missing iterator forwarding, ie bad_wr = bad_wr->next;
			}

		}
		priv->rx_outst = 0;
	}

#1: I've talked with Shirley about this.
#2: I thought to have seen you fixed it, but still see it in rc4 after called
configure script.

Nam




More information about the ewg mailing list