VMM: Fix virtio-net bytestostrip initialization
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 28 Nov 2016 15:24:28 +0000 (10:24 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 29 Nov 2016 16:21:37 +0000 (11:21 -0500)
Needs to be initialized in per-virtio loop.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
user/vmm/virtio_net.c

index 6201acb..18687e0 100644 (file)
@@ -172,7 +172,7 @@ void net_transmitq_fn(void *_vq)
        void *stripped;
        int ret;
        int fd = open(data_path, O_RDWR);
-       int bytestostrip = VIRTIO_HEADER_SIZE;
+       int bytestostrip;
 
        if (fd == -1)
                VIRTIO_DEV_ERRX(vq->vqdev, "Could not open data file for ether1.");
@@ -201,6 +201,7 @@ void net_transmitq_fn(void *_vq)
                 */
 
                /* Find the beginning of the ethernet frame. */
+               bytestostrip = VIRTIO_HEADER_SIZE;
                for (int i = 0; i < olen; i++) {
                        /* This conditional also catches cases when iov_len is 0 */
                        if (iov[i].iov_len <= bytestostrip) {