···933933 /* FIXME: Actually want DRIVER_ACTIVE here. */934934 if (dev->desc->status & VIRTIO_CONFIG_S_DRIVER_OK)935935 warn("network: no dma buffer!");936936+937937+ /* Now tell it we want to know if new things appear. */938938+ dev->vq->vring.used->flags &= ~VRING_USED_F_NO_NOTIFY;939939+ wmb();940940+936941 /* We'll turn this back on if input buffers are registered. */937942 return false;938943 } else if (out_num)···972967 add_device_fd(vq->dev->fd);973968 /* Tell waker to listen to it again */974969 write(waker_fd, &vq->dev->fd, sizeof(vq->dev->fd));970970+}971971+972972+static void net_enable_fd(int fd, struct virtqueue *vq)973973+{974974+ /* We don't need to know again when Guest refills receive buffer. */975975+ vq->vring.used->flags |= VRING_USED_F_NO_NOTIFY;976976+ enable_fd(fd, vq);975977}976978977979/* When the Guest tells us they updated the status field, we handle it. */···1438142614391427 /* Network devices need a receive and a send queue, just like14401428 * console. */14411441- add_virtqueue(dev, VIRTQUEUE_NUM, enable_fd);14291429+ add_virtqueue(dev, VIRTQUEUE_NUM, net_enable_fd);14421430 add_virtqueue(dev, VIRTQUEUE_NUM, handle_net_output);1443143114441432 /* We need a socket to perform the magic network ioctls to bring up the