Message ID | 1316999280-11999-1-git-send-email-rongqing.li@windriver.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
On 09/25/2011 06:08 PM, rongqing.li@windriver.com wrote: > From: Roy.Li<rongqing.li@windriver.com> > > Icmp packets with wrong checksum are never dropped since > skb->ip_summed is set to CHECKSUM_UNNECESSARY. > > When icmp packets with wrong checksum pass through the octeon > net driver, the not_IP, IP_exc, L4_error hardware indicators > show no error. so the driver sets CHECKSUM_UNNECESSARY on > skb->ip_summed. > > L4_error only works for TCP/UDP, not for ICMP. > > Signed-off-by: Roy.Li<rongqing.li@windriver.com> We found the same problem, but have not yet sent the patch to fix it. This looks fine to me, Acked-by: David Daney <david.daney@cavium.com> I would let davem, Ralf and Greg KH fight over who gets to merge it. David Daney > --- > drivers/staging/octeon/ethernet-rx.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c > index 1a7c19a..1747024 100644 > --- a/drivers/staging/octeon/ethernet-rx.c > +++ b/drivers/staging/octeon/ethernet-rx.c > @@ -411,7 +411,8 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget) > skb->protocol = eth_type_trans(skb, dev); > skb->dev = dev; > > - if (unlikely(work->word2.s.not_IP || work->word2.s.IP_exc || work->word2.s.L4_error)) > + if (unlikely(work->word2.s.not_IP || work->word2.s.IP_exc || > + work->word2.s.L4_error || !work->word2.s.tcp_or_udp)) > skb->ip_summed = CHECKSUM_NONE; > else > skb->ip_summed = CHECKSUM_UNNECESSARY; -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Sep 26, 2011 at 12:50:44PM -0700, David Daney wrote: > On 09/25/2011 06:08 PM, rongqing.li@windriver.com wrote: > >From: Roy.Li<rongqing.li@windriver.com> > > > >Icmp packets with wrong checksum are never dropped since > >skb->ip_summed is set to CHECKSUM_UNNECESSARY. > > > >When icmp packets with wrong checksum pass through the octeon > >net driver, the not_IP, IP_exc, L4_error hardware indicators > >show no error. so the driver sets CHECKSUM_UNNECESSARY on > >skb->ip_summed. > > > >L4_error only works for TCP/UDP, not for ICMP. > > > >Signed-off-by: Roy.Li<rongqing.li@windriver.com> > > We found the same problem, but have not yet sent the patch to fix it. > > This looks fine to me, > > Acked-by: David Daney <david.daney@cavium.com> > > I would let davem, Ralf and Greg KH fight over who gets to merge it. I'll let Ralf take it, unless he wants me to. Ralf? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Sep 26, 2011 at 05:51:27PM -0700, Greg KH wrote: > > This looks fine to me, > > > > Acked-by: David Daney <david.daney@cavium.com> > > > > I would let davem, Ralf and Greg KH fight over who gets to merge it. > > I'll let Ralf take it, unless he wants me to. > > Ralf? Ok. Yes, that seems the best solution. Ralf -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c index 1a7c19a..1747024 100644 --- a/drivers/staging/octeon/ethernet-rx.c +++ b/drivers/staging/octeon/ethernet-rx.c @@ -411,7 +411,8 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget) skb->protocol = eth_type_trans(skb, dev); skb->dev = dev; - if (unlikely(work->word2.s.not_IP || work->word2.s.IP_exc || work->word2.s.L4_error)) + if (unlikely(work->word2.s.not_IP || work->word2.s.IP_exc || + work->word2.s.L4_error || !work->word2.s.tcp_or_udp)) skb->ip_summed = CHECKSUM_NONE; else skb->ip_summed = CHECKSUM_UNNECESSARY;