From nobody Fri May 3 07:17:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 150268171004153.872302983167856; Sun, 13 Aug 2017 20:35:10 -0700 (PDT) Received: from localhost ([::1]:40706 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh69k-00060O-Ke for importer@patchew.org; Sun, 13 Aug 2017 23:35:08 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35225) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh683-0004qw-0n for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dh681-0007q5-IS for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:23 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39612) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dh681-0007pj-8m for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:21 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C37C4C07DE96; Mon, 14 Aug 2017 03:33:19 +0000 (UTC) Received: from jason-ThinkPad-T450s.redhat.com (ovpn-12-53.pek2.redhat.com [10.72.12.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 414F36C434; Mon, 14 Aug 2017 03:33:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com C37C4C07DE96 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=jasowang@redhat.com From: Jason Wang To: qemu-devel@nongnu.org, peter.maydell@linaro.org Date: Mon, 14 Aug 2017 11:33:07 +0800 Message-Id: <1502681591-31362-2-git-send-email-jasowang@redhat.com> In-Reply-To: <1502681591-31362-1-git-send-email-jasowang@redhat.com> References: <1502681591-31362-1-git-send-email-jasowang@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Mon, 14 Aug 2017 03:33:20 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 1/5] net/rocker: Remove the dead error handling X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mao Zhongyi , f4bug@amsat.org, jiri@resnulli.us, jasowang@redhat.com, armbru@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Mao Zhongyi Memory allocation functions like world_alloc, desc_ring_alloc etc, they are all wrappers around g_malloc, g_new etc. But g_malloc and similar functions doesn't return null. Because they ignore the fact that g_malloc() of 0 bytes returns null. So error checks for these allocation failure are superfluous. Now, remove them entirely. Cc: jasowang@redhat.com Cc: jiri@resnulli.us Cc: armbru@redhat.com Cc: f4bug@amsat.org Signed-off-by: Mao Zhongyi Reviewed-by: Markus Armbruster Signed-off-by: Jason Wang --- hw/net/rocker/rocker.c | 47 +--------------------------------------= ---- hw/net/rocker/rocker_desc.c | 10 --------- hw/net/rocker/rocker_fp.c | 4 ---- hw/net/rocker/rocker_of_dpa.c | 20 ------------------ hw/net/rocker/rocker_world.c | 12 +++++------ 5 files changed, 6 insertions(+), 87 deletions(-) diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c index 4f0f6d7..7496752 100644 --- a/hw/net/rocker/rocker.c +++ b/hw/net/rocker/rocker.c @@ -239,10 +239,6 @@ static int tx_consume(Rocker *r, DescInfo *info) } iov[iovcnt].iov_len =3D frag_len; iov[iovcnt].iov_base =3D g_malloc(frag_len); - if (!iov[iovcnt].iov_base) { - err =3D -ROCKER_ENOMEM; - goto err_no_mem; - } =20 pci_dma_read(dev, frag_addr, iov[iovcnt].iov_base, iov[iovcnt].iov_len); @@ -259,7 +255,6 @@ static int tx_consume(Rocker *r, DescInfo *info) err =3D fp_port_eg(r->fp_port[port], iov, iovcnt); =20 err_too_many_frags: -err_no_mem: err_bad_attr: for (i =3D 0; i < ROCKER_TX_FRAGS_MAX; i++) { g_free(iov[i].iov_base); @@ -671,10 +666,7 @@ int rx_produce(World *world, uint32_t pport, */ =20 data =3D g_malloc(data_size); - if (!data) { - err =3D -ROCKER_ENOMEM; - goto out; - } + iov_to_buf(iov, iovcnt, 0, data, data_size); pci_dma_write(dev, frag_addr, data, data_size); g_free(data); @@ -719,11 +711,6 @@ static void rocker_test_dma_ctrl(Rocker *r, uint32_t v= al) =20 buf =3D g_malloc(r->test_dma_size); =20 - if (!buf) { - DPRINTF("test dma buffer alloc failed"); - return; - } - switch (val) { case ROCKER_TEST_DMA_CTRL_CLEAR: memset(buf, 0, r->test_dma_size); @@ -1310,13 +1297,6 @@ static int pci_rocker_init(PCIDevice *dev) =20 r->worlds[ROCKER_WORLD_TYPE_OF_DPA] =3D of_dpa_world_alloc(r); =20 - for (i =3D 0; i < ROCKER_WORLD_TYPE_MAX; i++) { - if (!r->worlds[i]) { - err =3D -ENOMEM; - goto err_world_alloc; - } - } - if (!r->world_name) { r->world_name =3D g_strdup(world_name(r->worlds[ROCKER_WORLD_TYPE_= OF_DPA])); } @@ -1393,9 +1373,6 @@ static int pci_rocker_init(PCIDevice *dev) } =20 r->rings =3D g_new(DescRing *, rocker_pci_ring_count(r)); - if (!r->rings) { - goto err_rings_alloc; - } =20 /* Rings are ordered like this: * - command ring @@ -1407,14 +1384,9 @@ static int pci_rocker_init(PCIDevice *dev) * ..... */ =20 - err =3D -ENOMEM; for (i =3D 0; i < rocker_pci_ring_count(r); i++) { DescRing *ring =3D desc_ring_alloc(r, i); =20 - if (!ring) { - goto err_ring_alloc; - } - if (i =3D=3D ROCKER_RING_CMD) { desc_ring_set_consume(ring, cmd_consume, ROCKER_MSIX_VEC_CMD); } else if (i =3D=3D ROCKER_RING_EVENT) { @@ -1434,10 +1406,6 @@ static int pci_rocker_init(PCIDevice *dev) fp_port_alloc(r, r->name, &r->fp_start_macaddr, i, &r->fp_ports_peers[i]); =20 - if (!port) { - goto err_port_alloc; - } - r->fp_port[i] =3D port; fp_port_set_world(port, r->world_dflt); } @@ -1446,25 +1414,12 @@ static int pci_rocker_init(PCIDevice *dev) =20 return 0; =20 -err_port_alloc: - for (--i; i >=3D 0; i--) { - FpPort *port =3D r->fp_port[i]; - fp_port_free(port); - } - i =3D rocker_pci_ring_count(r); -err_ring_alloc: - for (--i; i >=3D 0; i--) { - desc_ring_free(r->rings[i]); - } - g_free(r->rings); -err_rings_alloc: err_duplicate: rocker_msix_uninit(r); err_msix_init: object_unparent(OBJECT(&r->msix_bar)); object_unparent(OBJECT(&r->mmio)); err_world_type_by_name: -err_world_alloc: for (i =3D 0; i < ROCKER_WORLD_TYPE_MAX; i++) { if (r->worlds[i]) { world_free(r->worlds[i]); diff --git a/hw/net/rocker/rocker_desc.c b/hw/net/rocker/rocker_desc.c index 6184c40..b009da4 100644 --- a/hw/net/rocker/rocker_desc.c +++ b/hw/net/rocker/rocker_desc.c @@ -65,10 +65,6 @@ char *desc_get_buf(DescInfo *info, bool read_only) info->buf_size =3D size; } =20 - if (!info->buf) { - return NULL; - } - pci_dma_read(dev, le64_to_cpu(info->desc.buf_addr), info->buf, size); =20 return info->buf; @@ -142,9 +138,6 @@ bool desc_ring_set_size(DescRing *ring, uint32_t size) ring->head =3D ring->tail =3D 0; =20 ring->info =3D g_renew(DescInfo, ring->info, size); - if (!ring->info) { - return false; - } =20 memset(ring->info, 0, size * sizeof(DescInfo)); =20 @@ -345,9 +338,6 @@ DescRing *desc_ring_alloc(Rocker *r, int index) DescRing *ring; =20 ring =3D g_new0(DescRing, 1); - if (!ring) { - return NULL; - } =20 ring->r =3D r; ring->index =3D index; diff --git a/hw/net/rocker/rocker_fp.c b/hw/net/rocker/rocker_fp.c index 1305ac3..4b3c984 100644 --- a/hw/net/rocker/rocker_fp.c +++ b/hw/net/rocker/rocker_fp.c @@ -226,10 +226,6 @@ FpPort *fp_port_alloc(Rocker *r, char *sw_name, { FpPort *port =3D g_new0(FpPort, 1); =20 - if (!port) { - return NULL; - } - port->r =3D r; port->index =3D index; port->pport =3D index + 1; diff --git a/hw/net/rocker/rocker_of_dpa.c b/hw/net/rocker/rocker_of_dpa.c index 9b1e0d2..191a58e 100644 --- a/hw/net/rocker/rocker_of_dpa.c +++ b/hw/net/rocker/rocker_of_dpa.c @@ -368,9 +368,6 @@ static OfDpaFlow *of_dpa_flow_alloc(uint64_t cookie) int64_t now =3D qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) / 1000; =20 flow =3D g_new0(OfDpaFlow, 1); - if (!flow) { - return NULL; - } =20 flow->cookie =3D cookie; flow->mask.tbl_id =3D 0xffffffff; @@ -813,10 +810,6 @@ static OfDpaGroup *of_dpa_group_alloc(uint32_t id) { OfDpaGroup *group =3D g_new0(OfDpaGroup, 1); =20 - if (!group) { - return NULL; - } - group->id =3D id; =20 return group; @@ -1867,9 +1860,6 @@ static int of_dpa_cmd_flow_add(OfDpa *of_dpa, uint64_= t cookie, } =20 flow =3D of_dpa_flow_alloc(cookie); - if (!flow) { - return -ROCKER_ENOMEM; - } =20 err =3D of_dpa_cmd_flow_add_mod(of_dpa, flow, flow_tlvs); if (err) { @@ -2040,17 +2030,10 @@ static int of_dpa_cmd_add_l2_flood(OfDpa *of_dpa, O= fDpaGroup *group, rocker_tlv_get_le16(group_tlvs[ROCKER_TLV_OF_DPA_GROUP_COUNT]); =20 tlvs =3D g_new0(RockerTlv *, group->l2_flood.group_count + 1); - if (!tlvs) { - return -ROCKER_ENOMEM; - } =20 g_free(group->l2_flood.group_ids); group->l2_flood.group_ids =3D g_new0(uint32_t, group->l2_flood.group_count); - if (!group->l2_flood.group_ids) { - err =3D -ROCKER_ENOMEM; - goto err_out; - } =20 rocker_tlv_parse_nested(tlvs, group->l2_flood.group_count, group_tlvs[ROCKER_TLV_OF_DPA_GROUP_IDS]); @@ -2157,9 +2140,6 @@ static int of_dpa_cmd_group_add(OfDpa *of_dpa, uint32= _t group_id, } =20 group =3D of_dpa_group_alloc(group_id); - if (!group) { - return -ROCKER_ENOMEM; - } =20 err =3D of_dpa_cmd_group_do(of_dpa, group_id, group, group_tlvs); if (err) { diff --git a/hw/net/rocker/rocker_world.c b/hw/net/rocker/rocker_world.c index 89777e9..f73c534 100644 --- a/hw/net/rocker/rocker_world.c +++ b/hw/net/rocker/rocker_world.c @@ -51,13 +51,11 @@ World *world_alloc(Rocker *r, size_t sizeof_private, { World *w =3D g_malloc0(sizeof(World) + sizeof_private); =20 - if (w) { - w->r =3D r; - w->type =3D type; - w->ops =3D ops; - if (w->ops->init) { - w->ops->init(w); - } + w->r =3D r; + w->type =3D type; + w->ops =3D ops; + if (w->ops->init) { + w->ops->init(w); } =20 return w; --=20 2.7.4 From nobody Fri May 3 07:17:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1502681777126605.5514593747757; Sun, 13 Aug 2017 20:36:17 -0700 (PDT) Received: from localhost ([::1]:40740 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh6Aq-0006yf-2g for importer@patchew.org; Sun, 13 Aug 2017 23:36:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35236) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh685-0004t8-Gp for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dh684-0007qu-K7 for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:25 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38330) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dh684-0007qh-D8 for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:24 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4BA605A72; Mon, 14 Aug 2017 03:33:23 +0000 (UTC) Received: from jason-ThinkPad-T450s.redhat.com (ovpn-12-53.pek2.redhat.com [10.72.12.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5467F66FE2; Mon, 14 Aug 2017 03:33:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4BA605A72 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=jasowang@redhat.com From: Jason Wang To: qemu-devel@nongnu.org, peter.maydell@linaro.org Date: Mon, 14 Aug 2017 11:33:08 +0800 Message-Id: <1502681591-31362-3-git-send-email-jasowang@redhat.com> In-Reply-To: <1502681591-31362-1-git-send-email-jasowang@redhat.com> References: <1502681591-31362-1-git-send-email-jasowang@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 14 Aug 2017 03:33:23 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 2/5] net/rocker: Plug memory leak in pci_rocker_init() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mao Zhongyi , f4bug@amsat.org, jiri@resnulli.us, jasowang@redhat.com, armbru@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Mao Zhongyi pci_rocker_init() leaks a World when the name more than 9 chars, then return a negative value directly, doesn't make a correct cleanup. So add a new goto label to fix it. Cc: jasowang@redhat.com Cc: jiri@resnulli.us Cc: armbru@redhat.com Cc: f4bug@amsat.org Signed-off-by: Mao Zhongyi Reviewed-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Jason Wang --- hw/net/rocker/rocker.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c index 7496752..9a538a9 100644 --- a/hw/net/rocker/rocker.c +++ b/hw/net/rocker/rocker.c @@ -1355,7 +1355,8 @@ static int pci_rocker_init(PCIDevice *dev) fprintf(stderr, "rocker: name too long; please shorten to at most %d chars= \n", MAX_ROCKER_NAME_LEN); - return -EINVAL; + err =3D -EINVAL; + goto err_name_too_long; } =20 if (memcmp(&r->fp_start_macaddr, &zero, sizeof(zero)) =3D=3D 0) { @@ -1414,6 +1415,7 @@ static int pci_rocker_init(PCIDevice *dev) =20 return 0; =20 +err_name_too_long: err_duplicate: rocker_msix_uninit(r); err_msix_init: --=20 2.7.4 From nobody Fri May 3 07:17:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1502681839292670.1586554027488; Sun, 13 Aug 2017 20:37:19 -0700 (PDT) Received: from localhost ([::1]:40855 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh6Bq-0007v5-7h for importer@patchew.org; Sun, 13 Aug 2017 23:37:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35247) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh68B-0004x7-Ci for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dh688-0007rW-8V for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58915) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dh687-0007rO-VJ for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:28 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EC1F92F72B9; Mon, 14 Aug 2017 03:33:26 +0000 (UTC) Received: from jason-ThinkPad-T450s.redhat.com (ovpn-12-53.pek2.redhat.com [10.72.12.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id E68FC66FE2; Mon, 14 Aug 2017 03:33:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com EC1F92F72B9 Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=jasowang@redhat.com From: Jason Wang To: qemu-devel@nongnu.org, peter.maydell@linaro.org Date: Mon, 14 Aug 2017 11:33:09 +0800 Message-Id: <1502681591-31362-4-git-send-email-jasowang@redhat.com> In-Reply-To: <1502681591-31362-1-git-send-email-jasowang@redhat.com> References: <1502681591-31362-1-git-send-email-jasowang@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 14 Aug 2017 03:33:27 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 3/5] net/rocker: Convert to realize() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mao Zhongyi , f4bug@amsat.org, jiri@resnulli.us, jasowang@redhat.com, armbru@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Mao Zhongyi The rocker device still implements the old PCIDeviceClass .init() instead of the new .realize(). All devices need to be converted to .realize(). .init() reports errors with fprintf() and return 0 on success, negative number on failure. Meanwhile, when -device rocker fails, it first report a specific error, then a generic one, like this: $ x86_64-softmmu/qemu-system-x86_64 -device rocker,name=3Dqemu-rocker rocker: name too long; please shorten to at most 9 chars qemu-system-x86_64: -device rocker,name=3Dqemu-rocker: Device initializ= ation failed Now, convert it to .realize() that passes errors to its callers via its errp argument. Also avoid the superfluous second error message. After the patch, effect like this: $ x86_64-softmmu/qemu-system-x86_64 -device rocker,name=3Dqemu-rocker qemu-system-x86_64: -device rocker,name=3Dqemu-rocker: name too long; p= lease shorten to at most 9 chars Cc: jasowang@redhat.com Cc: jiri@resnulli.us Cc: armbru@redhat.com Cc: f4bug@amsat.org Signed-off-by: Mao Zhongyi Reviewed-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Jason Wang --- hw/net/rocker/rocker.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c index 9a538a9..bb38cba 100644 --- a/hw/net/rocker/rocker.c +++ b/hw/net/rocker/rocker.c @@ -1236,20 +1236,18 @@ rollback: return err; } =20 -static int rocker_msix_init(Rocker *r) +static int rocker_msix_init(Rocker *r, Error **errp) { PCIDevice *dev =3D PCI_DEVICE(r); int err; - Error *local_err =3D NULL; =20 err =3D msix_init(dev, ROCKER_MSIX_VEC_COUNT(r->fp_ports), &r->msix_bar, ROCKER_PCI_MSIX_BAR_IDX, ROCKER_PCI_MSIX_TABLE_OFFSET, &r->msix_bar, ROCKER_PCI_MSIX_BAR_IDX, ROCKER_PCI_MSIX_PBA_OFFSET, - 0, &local_err); + 0, errp); if (err) { - error_report_err(local_err); return err; } =20 @@ -1285,7 +1283,7 @@ static World *rocker_world_type_by_name(Rocker *r, co= nst char *name) return NULL; } =20 -static int pci_rocker_init(PCIDevice *dev) +static void pci_rocker_realize(PCIDevice *dev, Error **errp) { Rocker *r =3D to_rocker(dev); const MACAddr zero =3D { .a =3D { 0, 0, 0, 0, 0, 0 } }; @@ -1303,10 +1301,9 @@ static int pci_rocker_init(PCIDevice *dev) =20 r->world_dflt =3D rocker_world_type_by_name(r, r->world_name); if (!r->world_dflt) { - fprintf(stderr, - "rocker: requested world \"%s\" does not exist\n", + error_setg(errp, + "invalid argument requested world %s does not exist", r->world_name); - err =3D -EINVAL; goto err_world_type_by_name; } =20 @@ -1326,7 +1323,7 @@ static int pci_rocker_init(PCIDevice *dev) =20 /* MSI-X init */ =20 - err =3D rocker_msix_init(r); + err =3D rocker_msix_init(r, errp); if (err) { goto err_msix_init; } @@ -1338,7 +1335,7 @@ static int pci_rocker_init(PCIDevice *dev) } =20 if (rocker_find(r->name)) { - err =3D -EEXIST; + error_setg(errp, "%s already exists", r->name); goto err_duplicate; } =20 @@ -1352,10 +1349,9 @@ static int pci_rocker_init(PCIDevice *dev) #define ROCKER_IFNAMSIZ 16 #define MAX_ROCKER_NAME_LEN (ROCKER_IFNAMSIZ - 1 - 3 - 3) if (strlen(r->name) > MAX_ROCKER_NAME_LEN) { - fprintf(stderr, - "rocker: name too long; please shorten to at most %d chars= \n", + error_setg(errp, + "name too long; please shorten to at most %d chars", MAX_ROCKER_NAME_LEN); - err =3D -EINVAL; goto err_name_too_long; } =20 @@ -1413,7 +1409,7 @@ static int pci_rocker_init(PCIDevice *dev) =20 QLIST_INSERT_HEAD(&rockers, r, next); =20 - return 0; + return; =20 err_name_too_long: err_duplicate: @@ -1427,7 +1423,6 @@ err_world_type_by_name: world_free(r->worlds[i]); } } - return err; } =20 static void pci_rocker_uninit(PCIDevice *dev) @@ -1512,7 +1507,7 @@ static void rocker_class_init(ObjectClass *klass, voi= d *data) DeviceClass *dc =3D DEVICE_CLASS(klass); PCIDeviceClass *k =3D PCI_DEVICE_CLASS(klass); =20 - k->init =3D pci_rocker_init; + k->realize =3D pci_rocker_realize; k->exit =3D pci_rocker_uninit; k->vendor_id =3D PCI_VENDOR_ID_REDHAT; k->device_id =3D PCI_DEVICE_ID_REDHAT_ROCKER; --=20 2.7.4 From nobody Fri May 3 07:17:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1502681897608251.29882320465674; Sun, 13 Aug 2017 20:38:17 -0700 (PDT) Received: from localhost ([::1]:40924 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh6Cm-0000Iy-NS for importer@patchew.org; Sun, 13 Aug 2017 23:38:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35259) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh68E-0004zg-0m for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dh68C-0007s4-VU for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:34 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38430) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dh68C-0007ry-Lz for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:32 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A10693E2B6; Mon, 14 Aug 2017 03:33:31 +0000 (UTC) Received: from jason-ThinkPad-T450s.redhat.com (ovpn-12-53.pek2.redhat.com [10.72.12.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id B45E466FE2; Mon, 14 Aug 2017 03:33:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A10693E2B6 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=jasowang@redhat.com From: Jason Wang To: qemu-devel@nongnu.org, peter.maydell@linaro.org Date: Mon, 14 Aug 2017 11:33:10 +0800 Message-Id: <1502681591-31362-5-git-send-email-jasowang@redhat.com> In-Reply-To: <1502681591-31362-1-git-send-email-jasowang@redhat.com> References: <1502681591-31362-1-git-send-email-jasowang@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 14 Aug 2017 03:33:31 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 4/5] net/rocker: Fix the unusual macro name X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mao Zhongyi , f4bug@amsat.org, jiri@resnulli.us, jasowang@redhat.com, armbru@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Mao Zhongyi Cc: jasowang@redhat.com Cc: jiri@resnulli.us Cc: armbru@redhat.com Cc: f4bug@amsat.org Suggested-by: Markus Armbruster Signed-off-by: Mao Zhongyi Reviewed-by: Markus Armbruster Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Jason Wang --- hw/net/rocker/rocker.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c index bb38cba..9273473 100644 --- a/hw/net/rocker/rocker.c +++ b/hw/net/rocker/rocker.c @@ -69,10 +69,10 @@ struct rocker { QLIST_ENTRY(rocker) next; }; =20 -#define ROCKER "rocker" +#define TYPE_ROCKER "rocker" =20 -#define to_rocker(obj) \ - OBJECT_CHECK(Rocker, (obj), ROCKER) +#define ROCKER(obj) \ + OBJECT_CHECK(Rocker, (obj), TYPE_ROCKER) =20 static QLIST_HEAD(, rocker) rockers; =20 @@ -1285,7 +1285,7 @@ static World *rocker_world_type_by_name(Rocker *r, co= nst char *name) =20 static void pci_rocker_realize(PCIDevice *dev, Error **errp) { - Rocker *r =3D to_rocker(dev); + Rocker *r =3D ROCKER(dev); const MACAddr zero =3D { .a =3D { 0, 0, 0, 0, 0, 0 } }; const MACAddr dflt =3D { .a =3D { 0x52, 0x54, 0x00, 0x12, 0x35, 0x01 }= }; static int sw_index; @@ -1331,7 +1331,7 @@ static void pci_rocker_realize(PCIDevice *dev, Error = **errp) /* validate switch properties */ =20 if (!r->name) { - r->name =3D g_strdup(ROCKER); + r->name =3D g_strdup(TYPE_ROCKER); } =20 if (rocker_find(r->name)) { @@ -1427,7 +1427,7 @@ err_world_type_by_name: =20 static void pci_rocker_uninit(PCIDevice *dev) { - Rocker *r =3D to_rocker(dev); + Rocker *r =3D ROCKER(dev); int i; =20 QLIST_REMOVE(r, next); @@ -1460,7 +1460,7 @@ static void pci_rocker_uninit(PCIDevice *dev) =20 static void rocker_reset(DeviceState *dev) { - Rocker *r =3D to_rocker(dev); + Rocker *r =3D ROCKER(dev); int i; =20 for (i =3D 0; i < ROCKER_WORLD_TYPE_MAX; i++) { @@ -1498,7 +1498,7 @@ static Property rocker_properties[] =3D { }; =20 static const VMStateDescription rocker_vmsd =3D { - .name =3D ROCKER, + .name =3D TYPE_ROCKER, .unmigratable =3D 1, }; =20 @@ -1521,7 +1521,7 @@ static void rocker_class_init(ObjectClass *klass, voi= d *data) } =20 static const TypeInfo rocker_info =3D { - .name =3D ROCKER, + .name =3D TYPE_ROCKER, .parent =3D TYPE_PCI_DEVICE, .instance_size =3D sizeof(Rocker), .class_init =3D rocker_class_init, --=20 2.7.4 From nobody Fri May 3 07:17:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1502681974566228.58997830627754; Sun, 13 Aug 2017 20:39:34 -0700 (PDT) Received: from localhost ([::1]:41079 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh6E1-0001TB-IS for importer@patchew.org; Sun, 13 Aug 2017 23:39:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35270) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dh68G-00051f-2z for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dh68F-0007sa-Cl for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47712) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dh68F-0007sP-6l for qemu-devel@nongnu.org; Sun, 13 Aug 2017 23:33:35 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3159C77905; Mon, 14 Aug 2017 03:33:34 +0000 (UTC) Received: from jason-ThinkPad-T450s.redhat.com (ovpn-12-53.pek2.redhat.com [10.72.12.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3EAF966FE2; Mon, 14 Aug 2017 03:33:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3159C77905 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=jasowang@redhat.com From: Jason Wang To: qemu-devel@nongnu.org, peter.maydell@linaro.org Date: Mon, 14 Aug 2017 11:33:11 +0800 Message-Id: <1502681591-31362-6-git-send-email-jasowang@redhat.com> In-Reply-To: <1502681591-31362-1-git-send-email-jasowang@redhat.com> References: <1502681591-31362-1-git-send-email-jasowang@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 14 Aug 2017 03:33:34 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 5/5] qemu-doc: Mention host_net_add/-remove in the deprecation chapter X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , Jason Wang Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Thomas Huth The two HMP commands host_net_add and -remove have recently been marked as deprecated, too, so we should now mention them in the chapter of deprecated features. Signed-off-by: Thomas Huth Signed-off-by: Jason Wang --- qemu-doc.texi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/qemu-doc.texi b/qemu-doc.texi index aeb7bc5..7b62fdf 100644 --- a/qemu-doc.texi +++ b/qemu-doc.texi @@ -3283,6 +3283,14 @@ by the ``convert -l snapshot_param'' argument instea= d. =20 @section System emulator human monitor commands =20 +@subsection host_net_add (since 2.10.0) + +The ``host_net_add'' command is replaced by the ``netdev_add'' command. + +@subsection host_net_remove (since 2.10.0) + +The ``host_net_remove'' command is replaced by the ``host_net_remove'' com= mand. + @subsection usb_add (since 2.10.0) =20 The ``usb_add'' command is replaced by the ``device_add'' command. --=20 2.7.4