From patchwork Fri Feb 22 03:39:50 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: MORITA Kazutaka X-Patchwork-Id: 222454 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 5DF262C0296 for ; Fri, 22 Feb 2013 14:42:48 +1100 (EST) Received: from localhost ([::1]:54508 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U8jX4-0005zT-IL for incoming@patchwork.ozlabs.org; Thu, 21 Feb 2013 22:42:46 -0500 Received: from eggs.gnu.org ([208.118.235.92]:53362) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U8jWs-0005ul-4V for qemu-devel@nongnu.org; Thu, 21 Feb 2013 22:42:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U8jWl-0005vd-RJ for qemu-devel@nongnu.org; Thu, 21 Feb 2013 22:42:34 -0500 Received: from ns.osrg.net ([192.16.179.2]:46625) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U8jWl-0005ua-Bg for qemu-devel@nongnu.org; Thu, 21 Feb 2013 22:42:27 -0500 Received: from fs.osrg.net (postfix@fs.osrg.net [10.0.0.12]) by ns.osrg.net (8.14.3/8.14.3/OSRG-NET) with ESMTP id r1M3gLV4012075; Fri, 22 Feb 2013 12:42:22 +0900 Received: from localhost (unknown [10.32.32.72]) by fs.osrg.net (Postfix) with ESMTP id 912C43E02A2; Fri, 22 Feb 2013 12:42:21 +0900 (JST) From: MORITA Kazutaka To: kwolf@redhat.com, stefanha@redhat.com Date: Fri, 22 Feb 2013 12:39:50 +0900 Message-Id: <1361504393-12064-3-git-send-email-morita.kazutaka@lab.ntt.co.jp> X-Mailer: git-send-email 1.8.1.3.566.gaa39828 In-Reply-To: <1361504393-12064-1-git-send-email-morita.kazutaka@lab.ntt.co.jp> References: <1361504393-12064-1-git-send-email-morita.kazutaka@lab.ntt.co.jp> X-Dispatcher: imput version 20100215(IM150) Lines: 125 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.3.7 (ns.osrg.net [192.16.179.2]); Fri, 22 Feb 2013 12:42:22 +0900 (JST) X-Virus-Scanned: clamav-milter 0.97.6 at ns X-Virus-Status: Clean X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 192.16.179.2 Cc: qemu-devel@nongnu.org Subject: [Qemu-devel] [PATCH v4 RESEND 2/5] move socket_set_nodelay to osdep.c X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: MORITA Kazutaka --- block/sheepdog.c | 11 +---------- gdbstub.c | 5 ++--- include/qemu/sockets.h | 1 + qemu-char.c | 6 ------ slirp/tcp_subr.c | 3 +-- util/osdep.c | 6 ++++++ 6 files changed, 11 insertions(+), 21 deletions(-) diff --git a/block/sheepdog.c b/block/sheepdog.c index d466b23..51e75ad 100644 --- a/block/sheepdog.c +++ b/block/sheepdog.c @@ -787,15 +787,6 @@ static int aio_flush_request(void *opaque) !QLIST_EMPTY(&s->pending_aio_head); } -static int set_nodelay(int fd) -{ - int ret, opt; - - opt = 1; - ret = setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&opt, sizeof(opt)); - return ret; -} - /* * Return a socket discriptor to read/write objects. * @@ -814,7 +805,7 @@ static int get_sheep_fd(BDRVSheepdogState *s) socket_set_nonblock(fd); - ret = set_nodelay(fd); + ret = socket_set_nodelay(fd); if (ret) { error_report("%s", strerror(errno)); closesocket(fd); diff --git a/gdbstub.c b/gdbstub.c index 32dfea9..e414ad9 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -2841,7 +2841,7 @@ static void gdb_accept(void) GDBState *s; struct sockaddr_in sockaddr; socklen_t len; - int val, fd; + int fd; for(;;) { len = sizeof(sockaddr); @@ -2858,8 +2858,7 @@ static void gdb_accept(void) } /* set short latency */ - val = 1; - setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val)); + socket_set_nodelay(fd); s = g_malloc0(sizeof(GDBState)); s->c_cpu = first_cpu; diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h index 803ae17..6125bf7 100644 --- a/include/qemu/sockets.h +++ b/include/qemu/sockets.h @@ -34,6 +34,7 @@ int inet_aton(const char *cp, struct in_addr *ia); int qemu_socket(int domain, int type, int protocol); int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen); int socket_set_cork(int fd, int v); +int socket_set_nodelay(int fd); void socket_set_block(int fd); void socket_set_nonblock(int fd); int send_all(int fd, const void *buf, int len1); diff --git a/qemu-char.c b/qemu-char.c index e4b0f53..3e16b5b 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -2365,12 +2365,6 @@ static void tcp_chr_telnet_init(int fd) send(fd, (char *)buf, 3, 0); } -static void socket_set_nodelay(int fd) -{ - int val = 1; - setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val)); -} - static int tcp_chr_add_client(CharDriverState *chr, int fd) { TCPCharDriver *s = chr->opaque; diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c index 317dc07..7b7ad60 100644 --- a/slirp/tcp_subr.c +++ b/slirp/tcp_subr.c @@ -430,8 +430,7 @@ void tcp_connect(struct socket *inso) setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int)); opt = 1; setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (char *)&opt, sizeof(int)); - opt = 1; - setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char *)&opt, sizeof(int)); + socket_set_nodelay(s); so->so_fport = addr.sin_port; so->so_faddr = addr.sin_addr; diff --git a/util/osdep.c b/util/osdep.c index 5b51a03..c408261 100644 --- a/util/osdep.c +++ b/util/osdep.c @@ -63,6 +63,12 @@ int socket_set_cork(int fd, int v) #endif } +int socket_set_nodelay(int fd) +{ + int v = 1; + return setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &v, sizeof(v)); +} + int qemu_madvise(void *addr, size_t len, int advice) { if (advice == QEMU_MADV_INVALID) {