From: Amiram Perlmutter Date: Mon, 13 Nov 2006 09:43:06 +0000 (+0200) Subject: IB/sdp: modify buffer use calculation to eliminate credit starvation X-Git-Tag: v4.1.12-92~264^2~5^2~373 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=9cc1d8ae370e050bb84e804a55425ec532e5e5f2;p=users%2Fjedix%2Flinux-maple.git IB/sdp: modify buffer use calculation to eliminate credit starvation Signed-off-by: Amiram Perlmutter --- diff --git a/drivers/infiniband/ulp/sdp/sdp_bcopy.c b/drivers/infiniband/ulp/sdp/sdp_bcopy.c index bbedba0deee1d..d3edea9ecf2a4 100644 --- a/drivers/infiniband/ulp/sdp/sdp_bcopy.c +++ b/drivers/infiniband/ulp/sdp/sdp_bcopy.c @@ -239,14 +239,12 @@ static void sdp_post_recv(struct sdp_sock *ssk) void sdp_post_recvs(struct sdp_sock *ssk) { - int rmem = atomic_read(&ssk->isk.sk.sk_rmem_alloc); - if (unlikely(!ssk->id)) return; while ((likely(ssk->rx_head - ssk->rx_tail < SDP_RX_SIZE) && (ssk->rx_head - ssk->rx_tail - SDP_MIN_BUFS) * - SDP_MAX_SEND_SKB_FRAGS * PAGE_SIZE + rmem < + SDP_MAX_SEND_SKB_FRAGS * PAGE_SIZE + ssk->rcv_nxt - ssk->copied_seq < ssk->isk.sk.sk_rcvbuf * rcvbuf_scale) || unlikely(ssk->rx_head - ssk->rx_tail < SDP_MIN_BUFS)) sdp_post_recv(ssk); @@ -286,7 +284,9 @@ static inline int sdp_sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb) int skb_len; struct sdp_sock *ssk = sdp_sk(sk); - skb_set_owner_r(skb, sk); + /* not needed since sk_rmem_alloc is not currently used + * TODO - remove this? + skb_set_owner_r(skb, sk); */ skb_len = skb->len;