[ewg] [PATCH] ofed_1_2/sdp - SDP can lose receive data

Ralph Campbell ralph.campbell at qlogic.com
Fri May 25 17:33:43 PDT 2007


Can this fix be considered for OFED 1.2?
Thanks.


If a receive work completion is processed but there is no room
in a previously queued skb, the data is dropped.
This patch fixes the problem by queuing the skb.

Signed-off-by: Ralph Campbell <ralph.campbell at qlogic.com>

diff -r 074340d1892d drivers/infiniband/ulp/sdp/sdp_bcopy.c
--- a/drivers/infiniband/ulp/sdp/sdp_bcopy.c	Fri May 25 17:04:51 2007 -0700
+++ b/drivers/infiniband/ulp/sdp/sdp_bcopy.c	Fri May 25 17:07:02 2007 -0700
@@ -314,7 +314,8 @@ static inline struct sk_buff *sdp_sock_q
 			skb_copy_bits(skb, 0, skb_put(tail, skb_len), skb_len);
 			__kfree_skb(skb);
 			skb = tail;
-		}
+		} else
+			skb_queue_tail(&sk->sk_receive_queue, skb);
 	} else
 		skb_queue_tail(&sk->sk_receive_queue, skb);
 





More information about the ewg mailing list