aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/svcsock.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sunrpc/svcsock.c')
-rw-r--r--net/sunrpc/svcsock.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 1413cdcc131c..71d6072664d2 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -617,7 +617,7 @@ static int svc_udp_recvfrom(struct svc_rqst *rqstp)
617 svsk->sk_sk->sk_stamp = skb->tstamp; 617 svsk->sk_sk->sk_stamp = skb->tstamp;
618 set_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags); /* there may be more data... */ 618 set_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags); /* there may be more data... */
619 619
620 len = skb->len - sizeof(struct udphdr); 620 len = skb->len;
621 rqstp->rq_arg.len = len; 621 rqstp->rq_arg.len = len;
622 622
623 rqstp->rq_prot = IPPROTO_UDP; 623 rqstp->rq_prot = IPPROTO_UDP;
@@ -641,8 +641,7 @@ static int svc_udp_recvfrom(struct svc_rqst *rqstp)
641 skb_free_datagram_locked(svsk->sk_sk, skb); 641 skb_free_datagram_locked(svsk->sk_sk, skb);
642 } else { 642 } else {
643 /* we can use it in-place */ 643 /* we can use it in-place */
644 rqstp->rq_arg.head[0].iov_base = skb->data + 644 rqstp->rq_arg.head[0].iov_base = skb->data;
645 sizeof(struct udphdr);
646 rqstp->rq_arg.head[0].iov_len = len; 645 rqstp->rq_arg.head[0].iov_len = len;
647 if (skb_checksum_complete(skb)) 646 if (skb_checksum_complete(skb))
648 goto out_free; 647 goto out_free;