From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9E8F3A00C4 for ; Wed, 9 Nov 2022 11:47:28 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8144940143; Wed, 9 Nov 2022 11:47:28 +0100 (CET) Received: from cvbackendsmtp001.nmdf.navercorp.com (cvbackendsmtp001.nmdf.navercorp.com [125.209.246.146]) by mails.dpdk.org (Postfix) with ESMTP id 6B94F400EF; Wed, 9 Nov 2022 11:47:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=navercorp.com; s=s20171120; t=1667990845; bh=Yq3jRtsPZezCb0Azfzxfc+uQjpQNjgQtQqmVuZuq/Mo=; h=Date:From:To:Subject:Message-ID:From:Subject:Feedback-ID: X-Works-Security; b=Ijr1YxNLarJFiMV8YEYj4x4jEfD0/3axieor2cWT2mC0i1CeQXVWpmUJWp0akXUzV OhHOwu8EOSQ3EipkSkLlLdmW+sfHIyH4rm0Z0D8DEiGwJg8BXf8kBwdw9Jfzbc5jyo hqs3lL4KoOzwsdZXZxfM2fTIVpOhH8YAQkhZQiOnAhAqp6UEZcqVifZ+d88I+9Qy+9 9p6+qKuUEw12uyG5kvm8vTfp982LjYlw8BxKu0WMBwO0YY+uJjRE3BVy17u9mYh3wT uHe5CDgSZYk/1t9kZ5KsL3dCyFUS1vMNPTSw9Mx403bLwNeuPGzrJaNPAaYZ1UCW4c 9RLnVg4Jh1ahA== X-Session-ID: vSHKuU4VQuOlM-VoE0qUrw X-Works-Smtp-Source: VXK9axbrFoJCpNm9FAt/WHF0 Received: from dev-tkkim-git-send-email-ncl.nfra.io ([10.113.149.62]) by cvbackendsmtp001.nmdf.navercorp.com with ESMTP id vSHKuU4VQuOlM-VoE0qUrw for ; Wed, 09 Nov 2022 10:47:25 -0000 Date: Wed, 9 Nov 2022 19:47:24 +0900 From: Taekyung Kim To: "Pei, Andy" Cc: "dev@dpdk.org" , "Xia, Chenbo" , "maxime.coquelin@redhat.com" , "stable@dpdk.org" , "Wang, Xiao W" Subject: Re: [PATCH v4] vdpa/ifc: fix update_datapath error handling Message-ID: References: <20221108085624.53989-1-kim.tae.kyung@navercorp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi Andy, Thanks for your review. On Wed, Nov 09, 2022 at 02:39:09AM +0000, Pei, Andy wrote: > > > > -----Original Message----- > > From: Taekyung Kim > > Sent: Tuesday, November 8, 2022 4:56 PM > > To: dev@dpdk.org > > Cc: Xia, Chenbo ; Pei, Andy ; > > kim.tae.kyung@navercorp.com; maxime.coquelin@redhat.com; > > stable@dpdk.org; Wang, Xiao W > > Subject: [PATCH v4] vdpa/ifc: fix update_datapath error handling > > > > Stop and return the error code when update_datapath fails. > > update_datapath prepares resources for the vdpa device. > > The driver should not perform any further actions if update_datapath returns an > > error. > > > > Fixes: a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver") > > Cc: stable@dpdk.org > > > > Signed-off-by: Taekyung Kim > > --- > > v4: > > * Add rte_vdpa_unregister_device in ifcvf_pci_probe > > > > v3: > > * Fix coding style > > > > v2: > > * Revert the prepared resources before returning an error > > * Rebase to 22.11 rc2 > > * Add fixes and cc for backport > > > > --- > > drivers/vdpa/ifc/ifcvf_vdpa.c | 27 +++++++++++++++++++++++---- > > 1 file changed, 23 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c index > > 8dfd49336e..49d68ad1b1 100644 > > --- a/drivers/vdpa/ifc/ifcvf_vdpa.c > > +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c > > @@ -1098,7 +1098,12 @@ ifcvf_dev_config(int vid) > > internal = list->internal; > > internal->vid = vid; > > rte_atomic32_set(&internal->dev_attached, 1); > > - update_datapath(internal); > > + if (update_datapath(internal) < 0) { > > + DRV_LOG(ERR, "failed to update datapath for vDPA device %s", > > + vdev->device->name); > > + rte_atomic32_set(&internal->dev_attached, 0); > > + return -1; > > + } > > > > hw = &internal->hw; > > for (i = 0; i < hw->nr_vring; i++) { > > @@ -1146,7 +1151,12 @@ ifcvf_dev_close(int vid) > > internal->sw_fallback_running = false; > > } else { > > rte_atomic32_set(&internal->dev_attached, 0); > > - update_datapath(internal); > > + if (update_datapath(internal) < 0) { > > + DRV_LOG(ERR, "failed to update datapath for vDPA > > device %s", > > + vdev->device->name); > > + internal->configured = 0; > > + return -1; > > + } > > } > > > > internal->configured = 0; > > @@ -1752,7 +1762,15 @@ ifcvf_pci_probe(struct rte_pci_driver *pci_drv > > __rte_unused, > > } > > > > rte_atomic32_set(&internal->started, 1); > > - update_datapath(internal); > > + if (update_datapath(internal) < 0) { > > + DRV_LOG(ERR, "failed to update datapath %s", pci_dev->name); > > + rte_atomic32_set(&internal->started, 0); > > + rte_vdpa_unregister_device(internal->vdev); > > + pthread_mutex_lock(&internal_list_lock); > > + TAILQ_REMOVE(&internal_list, list, next); > > + pthread_mutex_unlock(&internal_list_lock); > > + goto error; > > + } > > > > rte_kvargs_free(kvlist); > > return 0; > > @@ -1781,7 +1799,8 @@ ifcvf_pci_remove(struct rte_pci_device *pci_dev) > > > > internal = list->internal; > > rte_atomic32_set(&internal->started, 0); > > - update_datapath(internal); > > + if (update_datapath(internal) < 0) > > + DRV_LOG(ERR, "failed to update datapath %s", pci_dev->name); > > > > rte_pci_unmap_device(internal->pdev); > > rte_vfio_container_destroy(internal->vfio_container_fd); > > -- > > 2.34.1 > > Acked-by: Andy Pei