From nobody Mon Feb 9 07:56:34 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1568914921; cv=none; d=zoho.com; s=zohoarc; b=aDCHIoqbD9XZIzrxMYwF7dDS0QoUG79lMskMm1sKhGMbgVLppECqgzvftHJN+/PJqSOJVMPZuumDtJyOnUTk33ojCudZ3g0ALHI5a4rPG81QpDp31nh+LuAsdjXGNxEkRmLN1f1Ckd2/fAguHfQ7aBibtdVMqarqxO0zixyp1cw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568914921; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=qvLARG805fE7e+PL8zyRymc41yihVBC8Xkai0LC9puU=; b=AOI2bj5fW7SFAEG1+Y/GsqtDT9Or4nr5oUMC0Vb11r4hiD6kDkUvErh++cZmA3NKIknXvM3fM8T8sVmdMs4imcrBzBt4hV3wR5z1Ru35vGFGVAvUNMNH2rO/NAzC/QxcGp8R4vvGV7qtAVb2U2zBHOsTLdMRzgoJkM9BaHNcakQ= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1568914921446560.896057242502; Thu, 19 Sep 2019 10:42:01 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iB0QN-0004GD-BD; Thu, 19 Sep 2019 17:40:59 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iB0QM-0004Fh-50 for xen-devel@lists.xenproject.org; Thu, 19 Sep 2019 17:40:58 +0000 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 99d8d47a-db04-11e9-b299-bc764e2007e4; Thu, 19 Sep 2019 17:40:42 +0000 (UTC) X-Inumbo-ID: 99d8d47a-db04-11e9-b299-bc764e2007e4 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1568914842; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/CS6ArKSdsCQwo1n1gxG9GakHmfYdgCTqatB6kPZ31w=; b=IugjBX2KCcnMKuyko3aHXJhfD/w3Gpbfq9UCFTRC/XlawxVHizWsk1o2 Pzegeg9c62RmSTjUSYIk6ErrJMK4b56OLlaWU6hjcfRL5tVmjPJDRE9YR k+VFwTx/EnuXCvogiIEvnKQVij20C6PFe17rH5R0Ztz6N5c9LHc6V5bIL c=; Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: None (esa2.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa2.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa2.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa2.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa2.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa2.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: Y/r7nsTXplF6IaLvOBP4OIG6M9AF/0mCJi4E1ZnY2qmXmT40W8R1OzG8p83iE+RUX5qmrC/HtO QM55wbCEv3UV/9covw7Q9eDPOF5tRsDnjCWidQtiG+rzRtW7ntcN3Wsnt9QDi6g3lJ4W6Z5UzB pa3K8kmCx4JDf9b1AL4MZiF3fWoKoDAILfzUrz5qYYPYmdxEoz+SzEAlWMjwdrajePHiyCxJjK x0VhVvjwhjc8MLoyQFrqnYg5+G0C1+GyKPz8tF6Z5oBBsX1iSQzWE1PJbrvuorLPLnNEKHj4tC EYo= X-SBRS: 2.7 X-MesageID: 5801752 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,524,1559534400"; d="scan'208";a="5801752" From: Anthony PERARD To: Date: Thu, 19 Sep 2019 18:16:45 +0100 Message-ID: <20190919171656.899649-26-anthony.perard@citrix.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190919171656.899649-1-anthony.perard@citrix.com> References: <20190919171656.899649-1-anthony.perard@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 25/35] libxl_pci: Coding style of do_pci_add X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , Ian Jackson , Wei Liu Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) do_pci_add is going to be asynchronous, so we start by having a single path out of the function. All `return`s instead set rc and goto out. While here, some use of `rc' was used to store the return value of libxc calls, change them to store into `r'. Also, add the value of `r' in the error message of those calls. There were an `out' label that was use it seems to skip setting up the IRQ, the label has been renamed to `out_no_irq'. No functional changes. Signed-off-by: Anthony PERARD Acked-by: Ian Jackson --- tools/libxl/libxl_pci.c | 79 ++++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 33 deletions(-) diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c index 4b1aed1895cc..b9ca69f5f0b3 100644 --- a/tools/libxl/libxl_pci.c +++ b/tools/libxl/libxl_pci.c @@ -995,15 +995,19 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, uint32_t flag =3D XEN_DOMCTL_DEV_RDM_RELAXED; uint32_t domainid =3D domid; bool isstubdom =3D libxl_is_stubdom(ctx, domid, &domainid); + int r; =20 - if (type =3D=3D LIBXL_DOMAIN_TYPE_INVALID) - return ERROR_FAIL; + if (type =3D=3D LIBXL_DOMAIN_TYPE_INVALID) { + rc =3D ERROR_FAIL; + goto out; + } =20 if (type =3D=3D LIBXL_DOMAIN_TYPE_HVM) { hvm =3D 1; if (libxl__wait_for_device_model_deprecated(gc, domid, "running", NULL, NULL, NULL) < 0) { - return ERROR_FAIL; + rc =3D ERROR_FAIL; + goto out; } switch (libxl__device_model_version_running(gc, domid)) { case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: @@ -1013,10 +1017,10 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, rc =3D libxl__qmp_pci_add(gc, domid, pcidev); break; default: - return ERROR_INVAL; + rc =3D ERROR_INVAL; } if ( rc ) - return ERROR_FAIL; + goto out; } =20 sysfs_path =3D GCSPRINTF(SYSFS_PCI_DEV"/"PCI_BDF"/resource", pcidev->d= omain, @@ -1027,7 +1031,8 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, =20 if (f =3D=3D NULL) { LOGED(ERROR, domainid, "Couldn't open %s", sysfs_path); - return ERROR_FAIL; + rc =3D ERROR_FAIL; + goto out; } for (i =3D 0; i < PROC_PCI_NUM_RESOURCES; i++) { if (fscanf(f, "0x%llx 0x%llx 0x%llx\n", &start, &end, &flags) !=3D= 3) @@ -1035,25 +1040,25 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, size =3D end - start + 1; if (start) { if (flags & PCI_BAR_IO) { - rc =3D xc_domain_ioport_permission(ctx->xch, domid, start,= size, 1); - if (rc < 0) { + r =3D xc_domain_ioport_permission(ctx->xch, domid, start, = size, 1); + if (r < 0) { LOGED(ERROR, domainid, - "Error: xc_domain_ioport_permission error 0x%llx= /0x%llx", - start, - size); + "xc_domain_ioport_permission 0x%llx/0x%llx (erro= r %d)", + start, size, r); fclose(f); - return ERROR_FAIL; + rc =3D ERROR_FAIL; + goto out; } } else { - rc =3D xc_domain_iomem_permission(ctx->xch, domid, start>>= XC_PAGE_SHIFT, + r =3D xc_domain_iomem_permission(ctx->xch, domid, start>>X= C_PAGE_SHIFT, (size+(XC_PAGE_SIZE-1))>>X= C_PAGE_SHIFT, 1); - if (rc < 0) { + if (r < 0) { LOGED(ERROR, domainid, - "Error: xc_domain_iomem_permission error 0x%llx/= 0x%llx", - start, - size); + "xc_domain_iomem_permission 0x%llx/0x%llx (error= %d)", + start, size, r); fclose(f); - return ERROR_FAIL; + rc =3D ERROR_FAIL; + goto out; } } } @@ -1064,20 +1069,24 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, f =3D fopen(sysfs_path, "r"); if (f =3D=3D NULL) { LOGED(ERROR, domainid, "Couldn't open %s", sysfs_path); - goto out; + goto out_no_irq; } if ((fscanf(f, "%u", &irq) =3D=3D 1) && irq) { - rc =3D xc_physdev_map_pirq(ctx->xch, domid, irq, &irq); - if (rc < 0) { - LOGED(ERROR, domainid, "Error: xc_physdev_map_pirq irq=3D%d", = irq); + r =3D xc_physdev_map_pirq(ctx->xch, domid, irq, &irq); + if (r < 0) { + LOGED(ERROR, domainid, "xc_physdev_map_pirq irq=3D%d (error=3D= %d)", + irq, r); fclose(f); - return ERROR_FAIL; + rc =3D ERROR_FAIL; + goto out; } - rc =3D xc_domain_irq_permission(ctx->xch, domid, irq, 1); - if (rc < 0) { - LOGED(ERROR, domainid, "Error: xc_domain_irq_permission irq=3D= %d", irq); + r =3D xc_domain_irq_permission(ctx->xch, domid, irq, 1); + if (r < 0) { + LOGED(ERROR, domainid, + "xc_domain_irq_permission irq=3D%d (error=3D%d)", irq, r= ); fclose(f); - return ERROR_FAIL; + rc =3D ERROR_FAIL; + goto out; } } fclose(f); @@ -1087,22 +1096,25 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, if ( sysfs_write_bdf(gc, SYSFS_PCIBACK_DRIVER"/permissive", pcidev) < 0 ) { LOGD(ERROR, domainid, "Setting permissive for device"); - return ERROR_FAIL; + rc =3D ERROR_FAIL; + goto out; } } =20 -out: +out_no_irq: if (!isstubdom) { if (pcidev->rdm_policy =3D=3D LIBXL_RDM_RESERVE_POLICY_STRICT) { flag &=3D ~XEN_DOMCTL_DEV_RDM_RELAXED; } else if (pcidev->rdm_policy !=3D LIBXL_RDM_RESERVE_POLICY_RELAXE= D) { LOGED(ERROR, domainid, "unknown rdm check flag."); - return ERROR_FAIL; + rc =3D ERROR_FAIL; + goto out; } - rc =3D xc_assign_device(ctx->xch, domid, pcidev_encode_bdf(pcidev)= , flag); - if (rc < 0 && (hvm || errno !=3D ENOSYS)) { + r =3D xc_assign_device(ctx->xch, domid, pcidev_encode_bdf(pcidev),= flag); + if (r < 0 && (hvm || errno !=3D ENOSYS)) { LOGED(ERROR, domainid, "xc_assign_device failed"); - return ERROR_FAIL; + rc =3D ERROR_FAIL; + goto out; } } =20 @@ -1110,6 +1122,7 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, rc =3D libxl__device_pci_add_xenstore(gc, domid, pcidev, starting); else rc =3D 0; +out: return rc; } =20 --=20 Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel