diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2019-05-17 11:40:23 +0100 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2019-05-17 11:40:23 +0100 |
| commit | e48a748fc899bbd9bfa63f08ebb83f1c31b7bb7d (patch) | |
| tree | 3c3161c8572933d260b4a087b227e248a00caf6a /hw/net/vhost_net.c | |
| parent | b0f9690e78827d55a508c73432c73f057f59fd41 (diff) | |
| parent | 78e4f446d2569210a8558946b2321f9ff2ef47f6 (diff) | |
| download | focaccia-qemu-e48a748fc899bbd9bfa63f08ebb83f1c31b7bb7d.tar.gz focaccia-qemu-e48a748fc899bbd9bfa63f08ebb83f1c31b7bb7d.zip | |
Merge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into staging
# gpg: Signature made Fri 17 May 2019 10:01:18 BST # gpg: using RSA key EF04965B398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * remotes/jasowang/tags/net-pull-request: net/colo-compare.c: Fix a crash in COLO Primary. net/slirp: fix the IPv6 prefix length error message e1000: Never increment the RX undersize count register vhost_net: don't set backend for the uninitialized virtqueue Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/net/vhost_net.c')
| -rw-r--r-- | hw/net/vhost_net.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index be3cc88370..a6b719035c 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -244,6 +244,11 @@ static int vhost_net_start_one(struct vhost_net *net, qemu_set_fd_handler(net->backend, NULL, NULL, NULL); file.fd = net->backend; for (file.index = 0; file.index < net->dev.nvqs; ++file.index) { + if (!virtio_queue_enabled(dev, net->dev.vq_index + + file.index)) { + /* Queue might not be ready for start */ + continue; + } r = vhost_net_set_backend(&net->dev, &file); if (r < 0) { r = -errno; @@ -256,6 +261,11 @@ fail: file.fd = -1; if (net->nc->info->type == NET_CLIENT_DRIVER_TAP) { while (file.index-- > 0) { + if (!virtio_queue_enabled(dev, net->dev.vq_index + + file.index)) { + /* Queue might not be ready for start */ + continue; + } int r = vhost_net_set_backend(&net->dev, &file); assert(r >= 0); } |