lkml.org 
[lkml]   [2007]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patches in this message
    /
    From
    Date
    Subject[PATCH 002 of 3] knfsd: Avoid checksum checks when collecting metadata for a UDP packet.

    When recv_msg is called with a size of 0 and MSG_PEEK (and
    sunrpc/svcsock.c does), it is clear that we only interested in
    metadata (from/to addresses) and not the data, so don't do any
    checksum checking at this point. Leave that until the data is
    requested.

    Signed-off-by: Neil Brown <neilb@suse.de>

    ### Diffstat output
    ./net/ipv4/udp.c | 3 +++
    ./net/ipv6/udp.c | 4 ++++
    2 files changed, 7 insertions(+)

    diff .prev/net/ipv4/udp.c ./net/ipv4/udp.c
    --- .prev/net/ipv4/udp.c 2007-03-02 14:20:13.000000000 +1100
    +++ ./net/ipv4/udp.c 2007-03-02 15:13:50.000000000 +1100
    @@ -846,6 +846,9 @@ try_again:
    goto csum_copy_err;
    copy_only = 1;
    }
    + if (len == 0 && (flags & MSG_PEEK))
    + /* avoid checksum concerns when just getting metadata */
    + copy_only = 1;

    if (copy_only)
    err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr),
    diff .prev/net/ipv6/udp.c ./net/ipv6/udp.c
    --- .prev/net/ipv6/udp.c 2007-03-02 14:20:13.000000000 +1100
    +++ ./net/ipv6/udp.c 2007-03-02 15:13:50.000000000 +1100
    @@ -151,6 +151,10 @@ try_again:
    copy_only = 1;
    }

    + if (len == 0 && (flags & MSG_PEEK))
    + /* avoid checksum concerns when just getting metadata */
    + copy_only = 1;
    +
    if (copy_only)
    err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr),
    msg->msg_iov, copied );
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-03-02 05:35    [W:0.020 / U:32.956 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site