From: Fam Zheng <famz@redhat.com>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Jason Wang <jasowang@redhat.com>,
Vincenzo Maffione <v.maffione@gmail.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Giuseppe Lettieri <g.lettieri@iet.unipi.it>,
Luigi Rizzo <rizzo@iet.unipi.it>
Subject: [Qemu-devel] [PATCH v4 06/13] tap: Drop tap_can_send
Date: Thu, 4 Jun 2015 14:45:17 +0800 [thread overview]
Message-ID: <1433400324-7358-7-git-send-email-famz@redhat.com> (raw)
In-Reply-To: <1433400324-7358-1-git-send-email-famz@redhat.com>
This callback is called by main loop before polling s->fd, if it returns
false, the fd will not be polled in this iteration.
This is redundant with checks inside read callback. After this patch,
the data will be sent to peer when it arrives. If the device can't
receive, it will be queued to incoming_queue, and when the device status
changes, this queue will be flushed.
Signed-off-by: Fam Zheng <famz@redhat.com>
---
net/tap.c | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
diff --git a/net/tap.c b/net/tap.c
index d1ca314..0d184cf 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -62,14 +62,12 @@ typedef struct TAPState {
static void launch_script(const char *setup_script, const char *ifname,
int fd, Error **errp);
-static int tap_can_send(void *opaque);
static void tap_send(void *opaque);
static void tap_writable(void *opaque);
static void tap_update_fd_handler(TAPState *s)
{
- qemu_set_fd_handler2(s->fd,
- s->read_poll && s->enabled ? tap_can_send : NULL,
+ qemu_set_fd_handler2(s->fd, NULL,
s->read_poll && s->enabled ? tap_send : NULL,
s->write_poll && s->enabled ? tap_writable : NULL,
s);
@@ -166,13 +164,6 @@ static ssize_t tap_receive(NetClientState *nc, const uint8_t *buf, size_t size)
return tap_write_packet(s, iov, 1);
}
-static int tap_can_send(void *opaque)
-{
- TAPState *s = opaque;
-
- return qemu_can_send_packet(&s->nc);
-}
-
#ifndef __sun__
ssize_t tap_read_packet(int tapfd, uint8_t *buf, int maxlen)
{
@@ -192,7 +183,7 @@ static void tap_send(void *opaque)
int size;
int packets = 0;
- while (qemu_can_send_packet(&s->nc)) {
+ while (true) {
uint8_t *buf = s->buf;
size = tap_read_packet(s->fd, s->buf, sizeof(s->buf));
--
2.4.2
next prev parent reply other threads:[~2015-06-04 6:45 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-04 6:45 [Qemu-devel] [PATCH v4 00/13] main-loop: Get rid of fd_read_poll and qemu_set_fd_handler2 Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 01/13] stubs: Add qemu_set_fd_handler Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 02/13] qemu-nbd: Switch to qemu_set_fd_handler Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 03/13] l2tpv3: Drop l2tpv3_can_send Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 04/13] netmap: Drop netmap_can_send Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 05/13] net/socket: Drop net_socket_can_send Fam Zheng
2015-06-04 6:45 ` Fam Zheng [this message]
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 07/13] Change qemu_set_fd_handler2(..., NULL, ...) to qemu_set_fd_handler Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 08/13] main-loop: Drop qemu_set_fd_handler2 Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 09/13] alsaaudio: Remove unused error handling of qemu_set_fd_handler Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 10/13] oss: " Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 11/13] xen_backend: " Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 12/13] event-notifier: Always return 0 for posix implementation Fam Zheng
2015-06-04 6:45 ` [Qemu-devel] [PATCH v4 13/13] iohandler: Change return type of qemu_set_fd_handler to "void" Fam Zheng
2015-06-05 13:45 ` [Qemu-devel] [PATCH v4 00/13] main-loop: Get rid of fd_read_poll and qemu_set_fd_handler2 Stefan Hajnoczi
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=1433400324-7358-7-git-send-email-famz@redhat.com \
--to=famz@redhat.com \
--cc=g.lettieri@iet.unipi.it \
--cc=jasowang@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rizzo@iet.unipi.it \
--cc=stefanha@redhat.com \
--cc=v.maffione@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).