Re: [PATCH] net: fix bridge multicast packet checksum validation

From: Stephen Hemminger
Date: Thu Feb 18 2016 - 20:38:28 EST


On Thu, 18 Feb 2016 15:35:42 -0500 (EST)
David Miller <davem@xxxxxxxxxxxxx> wrote:

> From: Linus LÃssing <linus.luessing@xxxxxxxxx>
> Date: Mon, 15 Feb 2016 03:07:06 +0100
>
> > @@ -4084,10 +4089,22 @@ struct sk_buff *skb_checksum_trimmed(struct sk_buff *skb,
> > if (!pskb_may_pull(skb_chk, offset))
> > goto err;
> >
> > - __skb_pull(skb_chk, offset);
> > + ip_summed = skb->ip_summed;
> > + csum_valid = skb->csum_valid;
> > + csum_level = skb->csum_level;
> > + csum_bad = skb->csum_bad;
> > + csum = skb->csum;
> > +
> > + skb_pull_rcsum(skb_chk, offset);
> > ret = skb_chkf(skb_chk);
> > __skb_push(skb_chk, offset);
> >
> > + skb->ip_summed = ip_summed;
> > + skb->csum_valid = csum_valid;
> > + skb->csum_level = csum_level;
> > + skb->csum_bad = csum_bad;
> > + skb->csum = csum;
> > +
>
> There really has to be a better way to fix this :-/

Agreed, this is gross.