[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120112141017.0a83e973@nehalam.linuxnetplumber.net>
Date: Thu, 12 Jan 2012 14:10:17 -0800
From: Stephen Hemminger <shemminger@...tta.com>
To: Ben Hutchings <bhutchings@...arflare.com>
Cc: Herbert Xu <herbert@...dor.apana.org.au>,
netdev <netdev@...r.kernel.org>,
netfilter-devel <netfilter-devel@...r.kernel.org>
Subject: Re: skb_checksum_help() vs GSO
On Thu, 12 Jan 2012 20:42:10 +0000
Ben Hutchings <bhutchings@...arflare.com> wrote:
> skb_checksum_help() does:
>
> if (unlikely(skb_shinfo(skb)->gso_size)) {
> /* Let GSO fix up the checksum. */
> goto out_set_summed;
> }
> ...
> out_set_summed:
> skb->ip_summed = CHECKSUM_NONE;
> out:
> return ret;
>
> but skb_gso_segment() requires that skb->ip_summed == CHECKSUM_PARTIAL
> and WARNs if not. I don't think there's any case where it's valid to
> call both. Shouldn't skb_checksum_help() also WARN and return an error
> code instead of muddling on?
>
> Inspecting the callers of skb_checksum_help(), it looks like sch_netem's
> 'corrupt' option and xt_CHECKSUM might trigger this case.
>
> Ben.
Netem needs to check for GSO manually segment before calling skb_checksum_help.
I'll sort it out.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists