Thread (5 messages) 5 messages, 4 authors, 2010-03-31

Re: [PATCH] virtio_net: avoid BUG_ON() with large packets when CONFIG_DEBUG_SG=y

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2010-03-31 09:21:23

On Tue, Mar 30, 2010 at 03:26:35PM +1030, Rusty Russell wrote:
AFAICT only weird kvm setups and lguest traverse this code path now.

Signed-off-by: Rusty Russell <redacted>
vhost still lacks support mergeable buffers so it uses this path.
quoted hunk ↗ jump to hunk
---
 drivers/net/virtio_net.c |    3 +++
 1 file changed, 3 insertions(+)
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -351,6 +351,9 @@ static int add_recvbuf_big(struct virtne
 	char *p;
 	int i, err, offset;
 
+	/* This is a waste of cycles, but satisfies CONFIG_DEBUG_SG. */
+	sg_init_table(sg, ARRAY_SIZE(sg));
+
How about moving sg into virtnet_info? This way we could call
this only once, right?
 	/* page in sg[MAX_SKB_FRAGS + 1] is list tail */
 	for (i = MAX_SKB_FRAGS + 1; i > 1; --i) {
 		first = get_a_page(vi, gfp);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help