On Fri, Aug 15, 2008 at 02:47:12PM -0500, Anthony Liguori wrote: > > +static void work_around_broken_dhclient(struct virtio_net_hdr *hdr, > + const uint8_t *buf, size_t size) > +{ > + if ((hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) && /* missing csum */ > + (size > 18 && size < 1500) && /* normal sized MTU */ > + (buf[12] == 0x08 && buf[13] == 0x00) && /* ethertype == IPv4 */ > + (buf[23] == 17)) { /* ip.protocol == UDP */ > + /* FIXME this cast is evil */ > + net_checksum_calculate((uint8_t *)buf, size);
If we're going to do this, how about just setting the checksum to zero? Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]> 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 kvm" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html