The changes to how hardware receive checksums are handled broke the netpoll checksum code (for CHECKSUM_HW). Since this is not at all performance critical, try this patch. It changes to always to normal software checksum.
--- linux-2.6.orig/net/core/netpoll.c 2006-03-22 09:30:56.000000000 -0800 +++ linux-2.6/net/core/netpoll.c 2006-04-19 10:30:13.000000000 -0700 @@ -102,20 +102,11 @@ static int checksum_udp(struct sk_buff *skb, struct udphdr *uh, unsigned short ulen, u32 saddr, u32 daddr) { - unsigned int psum; - if (uh->check == 0 || skb->ip_summed == CHECKSUM_UNNECESSARY) return 0; - psum = csum_tcpudp_nofold(saddr, daddr, ulen, IPPROTO_UDP, 0); - - if (skb->ip_summed == CHECKSUM_HW && - !(u16)csum_fold(csum_add(psum, skb->csum))) - return 0; - - skb->csum = psum; - - return __skb_checksum_complete(skb); + skb->csum = csum_tcpudp_nofold(saddr, daddr, ulen, IPPROTO_UDP, 0); + return (u16) csum_fold(skb_checksum(skb, 0, skb->len, skb->csum)); } /* - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html