[ofa-general] Re: [ewg] [PATCH] ofed_1_2/sdp - SDP can lose receive data

Ralph Campbell ralph.campbell at qlogic.com
Wed May 30 10:09:25 PDT 2007


I guess I'm still getting used to git.
Somehow, I was looking at an earlier version.
The current code looks OK to me.

On Wed, 2007-05-30 at 09:43 +0300, Ami Perlmutter wrote:
> this is how the code looks now:
> 
> if (likely(skb_len && (tail = skb_peek_tail(&sk->sk_receive_queue))) &&
>     unlikely(skb_tailroom(tail) >= skb_len)) {
> 	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);
> 
> could you point out the problem?
> 
> On Tue, 2007-05-29 at 10:24 -0700, Ralph Campbell wrote:
> > It is from git://git.openfabrics.org/~vlad/ofed_1_2
> > commit 726c6827ac31c0b2f40acd804dc53362289bd21f
> > 
> > On Sun, 2007-05-27 at 12:07 +0300, Ami Perlmutter wrote:
> > > Ralph,
> > > this is how the code is now.
> > > Were are you getting this code from?
> > > 
> > > On Fri, 2007-05-25 at 17:33 -0700, Ralph Campbell wrote:
> > > > 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);
> > > >  
> > > > 
> > > > 
> > > > _______________________________________________
> > > > ewg mailing list
> > > > ewg at lists.openfabrics.org
> > > > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
> > > 
> > > _______________________________________________
> > > general mailing list
> > > general at lists.openfabrics.org
> > > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
> > > 
> > > To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
> > 
> 




More information about the general mailing list