Thread (3 messages) flat view 3 messages, 2 authors, 2014-11-26

Re: [PATCH v4 21/42] virtio_net: get rid of virtio_net_hdr/skb_vnet_hdr

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2014-11-26 13:12:17
Also in: lkml, virtualization

On Wed, Nov 26, 2014 at 01:50:53PM +0100, Cornelia Huck wrote:
On Tue, 25 Nov 2014 18:42:53 +0200
"Michael S. Tsirkin" [off-list ref] wrote:
quoted
virtio 1.0 doesn't use virtio_net_hdr anymore, and in fact, it's not
really useful since virtio_net_hdr_mrg_rxbuf includes that as the first
field anyway.

Let's drop it, precalculate header len and store within vi instead.

This way we can also remove struct skb_vnet_hdr.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 drivers/net/virtio_net.c | 90 ++++++++++++++++++++++--------------------------
 1 file changed, 41 insertions(+), 49 deletions(-)
quoted
@@ -260,13 +256,11 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi,

 	hdr = skb_vnet_hdr(skb);

-	if (vi->mergeable_rx_bufs) {
-		hdr_len = sizeof hdr->mhdr;
-		hdr_padded_len = sizeof hdr->mhdr;
-	} else {
-		hdr_len = sizeof hdr->hdr;
+	hdr_len = vi->hdr_len;
+	if (vi->mergeable_rx_bufs)
+		hdr_padded_len = sizeof *hdr;
sizeof without () looks weird to me.
It's how it was originally, so I think I'd rather keep it.
I kind of like it too: it stresses the fact that sizeof is not a function
and so does not actually dereference the pointer
even though it looks like it does.

We can change it with a patch on top, but should then be changed
everywhere in this file.
quoted
+	else
 		hdr_padded_len = sizeof(struct padded_vnet_hdr);
-	}

 	memcpy(hdr, p, hdr_len);
Otherwise:

Reviewed-by: Cornelia Huck <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help