In the case of off = 0, skb_headers_offset_update() do nothing indeed.
Signed-off-by: Miaohe Lin <[email protected]>
---
net/core/skbuff.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 18ed56316e56..f67f0da20a5b 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -1459,6 +1459,8 @@ EXPORT_SYMBOL(skb_clone);
void skb_headers_offset_update(struct sk_buff *skb, int off)
{
+ if (unlikely(off == 0))
+ return;
/* Only adjust this if it actually is csum_start rather than csum */
if (skb->ip_summed == CHECKSUM_PARTIAL)
skb->csum_start += off;
--
2.19.1
On Thu, Aug 27, 2020 at 4:25 AM Miaohe Lin <[email protected]> wrote:
>
> In the case of off = 0, skb_headers_offset_update() do nothing indeed.
>
> Signed-off-by: Miaohe Lin <[email protected]>
> ---
> net/core/skbuff.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index 18ed56316e56..f67f0da20a5b 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -1459,6 +1459,8 @@ EXPORT_SYMBOL(skb_clone);
>
> void skb_headers_offset_update(struct sk_buff *skb, int off)
> {
> + if (unlikely(off == 0))
> + return;
If this is unlikely, I doubt adding a test is going to save anything.
This will instead add a conditional test for the 'likely' cases.