Prev: [PATCH] block: move blk_register_queue() before uevent is send out
Next: [RFC] transfer ASYNC vmscan writeback IO to the flusher threads
From: Herbert Xu on 30 Jul 2010 05:10 On Fri, Jul 30, 2010 at 08:04:18AM +0800, Changli Gao wrote: > after updating the value of the ICMP payload, inet_proto_csum_replace4() should > be called with zero pseudohdr. > > Signed-off-by: Changli Gao <xiaosuo(a)gmail.com> No, the code is correct as is. We need to update the checksum even if the checksum is partial, which is what the 1 is for. Cheers, -- Email: Herbert Xu <herbert(a)gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Herbert Xu on 30 Jul 2010 06:30 On Fri, Jul 30, 2010 at 06:10:19PM +0800, Changli Gao wrote: > > Is it really necessary, and I have noticed that netfilter doesn't call > inet_proto_csum_replace4 in this way. The checksum update is for the inner IP header. netfilter does of course update the checksum, it just doesn't do it here which is for the outer IP header. Cheers, -- Email: Herbert Xu <herbert(a)gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Herbert Xu on 30 Jul 2010 10:40
On Fri, Jul 30, 2010 at 10:16:05PM +0800, Changli Gao wrote: > > I know we need to update the ICMP checksum if we alter the payload(the > inner IP header here) of ICMP. But I doubt if the update is really > necessary if the checksum is partial, as the checksum will be done > later(by ether skb_checksum_help() or NIC hardware). In fact, as there > isn't any pseudo header, the icmph->checksum should be always ZERO, > otherwise skb_checksum_help() or NIC will give the wrong checksums, > when the checksum is partial. Actually you are right. I suppose the only reason this has never shown up is because CHEKSUM_PARTIAL doesn't usually occur with forwarded packets. Acked-by: Herbert Xu <herbert(a)gondor.apana.org.au> Thanks, -- Email: Herbert Xu <herbert(a)gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |