Thread (1 message) 1 message, 1 author, 2008-01-16

Re: [PATCH 2/3] virtio: Net header needs gso_hdr_len

From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2008-01-16 00:06:21

Rusty Russell [off-list ref] wrote:
quoted hunk
It's far easier to deal with GSO if we don't have to parse the packet
to figure out the header length.  Add the field to the virtio_net_hdr
struct (and fix the spaces that somehow crept in there).

Signed-off-by: Rusty Russell <redacted>
---
drivers/net/virtio_net.c   |    4 +++-
include/linux/virtio_net.h |   11 ++++++-----
2 files changed, 9 insertions(+), 6 deletions(-)

diff -r 24ef33a4ab14 drivers/net/virtio_net.c
--- a/drivers/net/virtio_net.c  Tue Jan 15 16:59:58 2008 +1100
+++ b/drivers/net/virtio_net.c  Tue Jan 15 21:21:40 2008 +1100
@@ -126,6 +126,7 @@ static void receive_skb(struct net_devic
               /* Header must be checked, and gso_segs computed. */
               skb_shinfo(skb)->gso_type |= SKB_GSO_DODGY;
               skb_shinfo(skb)->gso_segs = 0;
+               skb_set_transport_header(skb, hdr->gso_hdr_len);
Why do we need this? When receiving GSO packets from an untrusted
source the network stack will fill in the transport header offset
after verifying that the headers are sane.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} [off-list ref]
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help