Re: [BUG] sky2 broken for Yukon PCI-E Gigabit Ethernet Controller 11ab:4362 (rev 19)



On Fri, Jan 27, 2006 at 07:07:34AM +0100, Knut Petersen wrote:
>
> Well, there are no problems if SuSEfirewall2 is disabled. But have a look
> at the loaded modules:
>
> ipt_MASQUERADE 3968 1
> pppoe 15360 2
> pppox 4616 1 pppoe

OK, although we can't rule out sky2/netfilter from the enquiry, I've
identified two bugs in ppp/pppoe that may be responsible for what you
are seeing. So please try the following patch and let us know if the
problem still exists (or deteriorates/improves).

[PPP]: Fixed hardware RX checksum handling

When we pull the PPP protocol off the skb, we forgot to update the
hardware RX checksum. This may lead to messages such as

dsl0: hw csum failure.

Similarly, we need to clear the hardware checksum flag when we use
the existing packet to store the decompressed result.

Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c--- a/drivers/net/ppp_generic.c
+++ b/drivers/net/ppp_generic.c
@@ -1610,6 +1610,8 @@ ppp_receive_nonmp_frame(struct ppp *ppp,
 		}
 		else if (!pskb_may_pull(skb, skb->len))
 			goto err;
+		else
+			skb->ip_summed = CHECKSUM_NONE;
 
 		len = slhc_uncompress(ppp->vj, skb->data + 2, skb->len - 2);
 		if (len <= 0) {
@@ -1690,6 +1692,7 @@ ppp_receive_nonmp_frame(struct ppp *ppp,
 			kfree_skb(skb);
 		} else {
 			skb_pull(skb, 2);	/* chop off protocol */
+			skb_postpull_rcsum(skb, skb->data - 2, 2);
 			skb->dev = ppp->dev;
 			skb->protocol = htons(npindex_to_ethertype[npi]);
 			skb->mac.raw = skb->data;


Relevant Pages

  • Re: e100: checksum mismatch on 82551ER rev10
    ... > driver change, it now does not work at all. ... completely disabling the hardware on checksum errors is shooting those ... that the vendor forgot to run a checksumming tool. ... at the vendors when they forget to run the checksum tool. ...
    (Linux-Kernel)
  • Re: OBSD Bridge Minimal Hardware Requirements
    ... Then again, realtek type hardware, has happened ... supports checksum offloading, and the linux driver that helpfully logs ... persons that won't believe a failed checksum showing up in the logs ...
    (comp.unix.bsd.openbsd.misc)
  • Re: Whats the deal with hardware checksum and net.inet.udp.checksum?
    ... UDP checksum could be calculated by the hardware, but this seems not to be ... to tcpdump the interface and see tcpdump reporting lots of bad ...
    (freebsd-net)
  • Re: Rx/tx hardware checksumming statistics?
    ... hardware, to indicate hardware performed the checksum computation. ... AFAIK all RealTek gigabit controllers can do TSO, checksum offload, ... hardware assistance if the controller in question is known to work ...
    (freebsd-net)
  • Re: Can driver read checksum & timestamp for other driver?
    ... the minidump producer doesn't checksum all loaded modules. ... Both timestamp and checksum are contained in the PE header. ... Is there *any* way to do this from within a driver? ...
    (microsoft.public.development.device.drivers)