net: optimize skb_postpull_rcsum()
authorEric Dumazet <edumazet@google.com>
Wed, 24 Nov 2021 20:24:46 +0000 (12:24 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 26 Nov 2021 05:03:31 +0000 (21:03 -0800)
commit29c3002644bdd653f6ec6407d25135d0a4f7cefb
tree7f17a01eb6164d66c713a0d18fde1ffa231707e4
parent0bd28476f6363c7ccc841fe6a0ab0dd1fdb822f6
net: optimize skb_postpull_rcsum()

Remove one pair of add/adc instructions and their dependency
against carry flag.

We can leverage third argument to csum_partial():

  X = csum_block_sub(X, csum_partial(start, len, 0), 0);

  -->

  X = csum_block_add(X, ~csum_partial(start, len, 0), 0);

  -->

  X = ~csum_partial(start, len, ~X);

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/skbuff.h