All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: kvm@vger.kernel.org
Cc: Glauber Costa <glommer@gmail.com>,
	Mark McLoughlin <markmc@redhat.com>, Avi Kivity <avi@redhat.com>,
	Anthony Liguori <aliguori@us.ibm.com>
Subject: [PATCH 11/17] net: drop packet from tap device if all NICs are down
Date: Sun, 17 May 2009 10:43:13 -0500	[thread overview]
Message-ID: <1242574999-20887-13-git-send-email-aliguori@us.ibm.com> (raw)
In-Reply-To: <1242574999-20887-1-git-send-email-aliguori@us.ibm.com>

From: Mark McLoughlin <markmc@redhat.com>

If you do e.g. "set_link virtio.0 down" and there are packets
pending on the tap interface, we currently buffer a packet
and constantly try and send it until the link is up again.

We actually just want to drop the packet if the NIC is down.
Upstream qemu already does this, we just differ because we
buffer packets from the tap interface.

[aliguori: rebased this patch on stable]

Reported-by: Yan Vugenfirer <yvugenfi@redhat.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

diff --git a/net.c b/net.c
index d8fb759..ef3a965 100644
--- a/net.c
+++ b/net.c
@@ -414,8 +414,10 @@ int qemu_send_packet(VLANClientState *vc1, const uint8_t *buf, int size)
     hex_dump(stdout, buf, size);
 #endif
     for(vc = vlan->first_client; vc != NULL; vc = vc->next) {
-        if (vc != vc1 && !vc->link_down) {
-            if (!vc->fd_can_read || vc->fd_can_read(vc->opaque)) {
+        if (vc != vc1) {
+            if (vc->link_down) {
+                ret = 0;
+            } else  if (!vc->fd_can_read || vc->fd_can_read(vc->opaque)) {
                 vc->fd_read(vc->opaque, buf, size);
                 ret = 0;
             }
-- 
1.6.0.6


  parent reply	other threads:[~2009-05-17 15:43 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-17 15:43 [PATCH 0/17][REVIEW] Backport candidates for stable-0.10 Anthony Liguori
2009-05-17 15:43 ` [PATCH 01/17] kvm: libkvm: protect irq injection status code with KVM_CAP_IRQ_INJECT_STATUS Anthony Liguori
2009-05-17 16:57   ` Avi Kivity
2009-05-17 15:43 ` [PATCH 02/17] kvm: testsuite: compile fix - avoid raw string literal Anthony Liguori
2009-05-17 15:43 ` [PATCH 03/17] Fix build breakage on non-device-deassignment capable host kernels Anthony Liguori
2009-05-17 16:58   ` Avi Kivity
2009-05-17 15:43 ` [PATCH 04/17] kvm: extboot: Update number of HDs reported by BIOS Anthony Liguori
2009-05-17 15:43 ` [PATCH 05/17] Stop/start cpus before/after devices Anthony Liguori
2009-05-17 16:59   ` Avi Kivity
2009-05-18 13:58     ` Marcelo Tosatti
2009-05-18 14:26       ` Anthony Liguori
2009-05-18 14:46         ` Avi Kivity
2009-05-18 14:47         ` Marcelo Tosatti
2009-05-18 14:55           ` Avi Kivity
2009-05-17 15:43 ` [PATCH 06/17] Use statfs to determine size of huge pages Anthony Liguori
2009-05-17 17:00   ` Avi Kivity
2009-05-18  9:02     ` Joerg Roedel
2009-05-18 13:10       ` Anthony Liguori
2009-05-18 13:22         ` Joerg Roedel
2009-05-17 15:43 ` [PATCH 07/17] Fixup 4GB+ memslot large page alignment Anthony Liguori
2009-05-17 15:43 ` [PATCH 08/17] Clear tap features on initialization Anthony Liguori
2009-05-17 15:43 ` [PATCH 09/17] Propagate errors on failed migration Anthony Liguori
2009-05-17 15:43 ` [PATCH 10/17] Support unregistering memory regions larger than a slot Anthony Liguori
2009-05-17 17:03   ` Avi Kivity
2009-05-18 14:23     ` Jan Kiszka
2009-05-17 15:43 ` [PATCH 11/17] net: drop packet from tap device if all NICs are down Anthony Liguori
2009-05-19 17:52   ` Mark McLoughlin
2009-05-17 15:43 ` Anthony Liguori [this message]
2009-05-17 15:43 ` [PATCH 12/17] Increment virtio-net savevm version to avoid conflict with upstream QEMU Anthony Liguori
2009-05-17 17:04   ` Avi Kivity
2009-05-17 23:33     ` Anthony Liguori
2009-05-17 23:41       ` Avi Kivity
2009-05-17 15:43 ` [PATCH 13/17] Increment version id for CPU save state Anthony Liguori
2009-05-17 17:06   ` Avi Kivity
2009-05-17 15:43 ` [PATCH 14/17] Fix build when objdir != srcdir Anthony Liguori
2009-05-17 15:43 ` [PATCH 15/17] Fix loading extboot option rom Anthony Liguori
2009-05-17 17:06   ` Avi Kivity
2009-05-17 15:43 ` [PATCH 16/17] virtio-net: Make save/load format independent of build options Anthony Liguori
2009-05-17 15:43 ` [PATCH 17/17] virtio-net: Refuse loading if the source requires vnet header and the host doesn't support it Anthony Liguori
2009-05-17 16:56 ` [PATCH 0/17][REVIEW] Backport candidates for stable-0.10 Avi Kivity
2009-05-17 23:32   ` Anthony Liguori
2009-05-17 17:10 ` Avi Kivity
2009-05-17 23:36   ` Anthony Liguori
2009-05-17 23:46     ` Avi Kivity
2009-05-21  9:06 ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1242574999-20887-13-git-send-email-aliguori@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --cc=avi@redhat.com \
    --cc=glommer@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=markmc@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.