From patchwork Fri Nov 6 15:13:32 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vincenzo Maffione X-Patchwork-Id: 541010 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3A0D61402A1 for ; Sat, 7 Nov 2015 02:14:47 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=rm+WLsyR; dkim-atps=neutral Received: from localhost ([::1]:39288 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zuiiz-0004yA-Eq for incoming@patchwork.ozlabs.org; Fri, 06 Nov 2015 10:14:45 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43893) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuiiO-00041W-II for qemu-devel@nongnu.org; Fri, 06 Nov 2015 10:14:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZuiiM-0003KX-TH for qemu-devel@nongnu.org; Fri, 06 Nov 2015 10:14:08 -0500 Received: from mail-wi0-x230.google.com ([2a00:1450:400c:c05::230]:36092) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuiiM-0003KS-Ke for qemu-devel@nongnu.org; Fri, 06 Nov 2015 10:14:06 -0500 Received: by wimw2 with SMTP id w2so32259945wim.1 for ; Fri, 06 Nov 2015 07:14:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=dmDxaKFdl3RkdSaFuUzgzKh1Ul6mL89Jcnm9+WtOkTU=; b=rm+WLsyR/dRWUPHh3OdAXVeOEfbHBrMgTwGGh1Lzux6Qd2ti2/au+uFTLw19ZEHEql VhkrD7UkMw/O5Ou2BGQJAWrDdXHIJhu9h32LXE+Jh45xtHIugQ+mH0/dBcbHX+4mGklB jIQ+vnrQq61y3LAZCDNEcSsqxwEfExxqvkrxUznNr4LYPcT/hrM7djqmEux8/kFfPSdO lYvwugrwvIk77yIOhyHWK50sjZ8QNno1fcIuxY0uxdGnt5yX8pAobXwozRLi2fj6AjAo DYTgcyitHz8LeLZ9K7aoieGRS/+BB4TSy7wqR40S4v+QGqaW3BuS6Xi6/XVBADkk5WeH W6pg== X-Received: by 10.194.189.68 with SMTP id gg4mr14852499wjc.146.1446822846006; Fri, 06 Nov 2015 07:14:06 -0800 (PST) Received: from ste-linux.lan (prova.iet.unipi.it. [131.114.58.86]) by smtp.gmail.com with ESMTPSA id l1sm593291wjx.13.2015.11.06.07.14.04 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 06 Nov 2015 07:14:05 -0800 (PST) From: Vincenzo Maffione To: qemu-devel@nongnu.org Date: Fri, 6 Nov 2015 16:13:32 +0100 Message-Id: <896ac39693833166f8ab806c557bc6552226a773.1446822384.git.v.maffione@gmail.com> X-Mailer: git-send-email 2.3.3 In-Reply-To: References: In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::230 Cc: rizzo@iet.unipi.it, jasowang@redhat.com, armbru@redhat.com, v.maffione@gmail.com, g.lettieri@iet.unipi.it Subject: [Qemu-devel] [PATCH v2 2/2] net: netmap: use error_setg_errno() in place of error_report() 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 This update was required to align error reporting of netmap backend initialization to the modifications introduced by commit a30ecde. Signed-off-by: Vincenzo Maffione Reviewed-by: Eric Blake --- net/clients.h | 4 ++-- net/netmap.c | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/net/clients.h b/net/clients.h index d47530e..aefe75e 100644 --- a/net/clients.h +++ b/net/clients.h @@ -55,8 +55,8 @@ int net_init_vde(const NetClientOptions *opts, const char *name, #endif #ifdef CONFIG_NETMAP -int net_init_netmap(const NetClientOptions *opts, const char *name, - NetClientState *peer, Error **errp); +void net_init_netmap(const NetClientOptions *opts, const char *name, + NetClientState *peer, Error **errp); #endif int net_init_vhost_user(const NetClientOptions *opts, const char *name, diff --git a/net/netmap.c b/net/netmap.c index 4197a9c..2b0254d 100644 --- a/net/netmap.c +++ b/net/netmap.c @@ -90,7 +90,7 @@ pkt_copy(const void *_src, void *_dst, int l) * Open a netmap device. We assume there is only one queue * (which is the case for the VALE bridge). */ -static int netmap_open(NetmapPriv *me) +static void netmap_open(NetmapPriv *me, Error **errp) { int fd; int err; @@ -99,9 +99,9 @@ static int netmap_open(NetmapPriv *me) me->fd = fd = open(me->fdname, O_RDWR); if (fd < 0) { - error_report("Unable to open netmap device '%s' (%s)", - me->fdname, strerror(errno)); - return -1; + error_setg_errno(errp, errno, "Unable to open netmap device '%s'", + me->fdname); + return; } memset(&req, 0, sizeof(req)); pstrcpy(req.nr_name, sizeof(req.nr_name), me->ifname); @@ -109,15 +109,14 @@ static int netmap_open(NetmapPriv *me) req.nr_version = NETMAP_API; err = ioctl(fd, NIOCREGIF, &req); if (err) { - error_report("Unable to register %s: %s", me->ifname, strerror(errno)); + error_setg_errno(errp, errno, "Unable to register %s", me->ifname); goto error; } l = me->memsize = req.nr_memsize; me->mem = mmap(0, l, PROT_WRITE | PROT_READ, MAP_SHARED, fd, 0); if (me->mem == MAP_FAILED) { - error_report("Unable to mmap netmap shared memory: %s", - strerror(errno)); + error_setg_errno(errp, errno, "Unable to mmap netmap shared memory"); me->mem = NULL; goto error; } @@ -125,11 +124,12 @@ static int netmap_open(NetmapPriv *me) me->nifp = NETMAP_IF(me->mem, req.nr_offset); me->tx = NETMAP_TXRING(me->nifp, 0); me->rx = NETMAP_RXRING(me->nifp, 0); - return 0; + + return; error: close(me->fd); - return -1; + return; } static void netmap_send(void *opaque); @@ -435,12 +435,12 @@ static NetClientInfo net_netmap_info = { * * ... -net netmap,ifname="..." */ -int net_init_netmap(const NetClientOptions *opts, - const char *name, NetClientState *peer, Error **errp) +void net_init_netmap(const NetClientOptions *opts, + const char *name, NetClientState *peer, Error **errp) { - /* FIXME error_setg(errp, ...) on failure */ const NetdevNetmapOptions *netmap_opts = opts->u.netmap; NetClientState *nc; + Error *err = NULL; NetmapPriv me; NetmapState *s; @@ -448,8 +448,10 @@ int net_init_netmap(const NetClientOptions *opts, netmap_opts->has_devname ? netmap_opts->devname : "/dev/netmap"); /* Set default name for the port if not supplied. */ pstrcpy(me.ifname, sizeof(me.ifname), netmap_opts->ifname); - if (netmap_open(&me)) { - return -1; + netmap_open(&me, &err); + if (err) { + error_propagate(errp, err); + return; } /* Create the object. */ nc = qemu_new_net_client(&net_netmap_info, peer, "netmap", name); @@ -457,7 +459,5 @@ int net_init_netmap(const NetClientOptions *opts, s->me = me; s->vnet_hdr_len = 0; netmap_read_poll(s, true); /* Initially only poll for reads. */ - - return 0; }