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 4C35242ECF for ; Thu, 20 Jul 2023 17:31:18 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 48BB342D10; Thu, 20 Jul 2023 17:31:18 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 609AE427EE for ; Thu, 20 Jul 2023 17:31:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689867075; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0n7TcLUlCuyDaDSOpolam0EWQB6/uwmKS3pwCJLp9II=; b=K1Lt5C5IalZWvWG0QDvSr4+KAqDMdVWJyEQMJuowqPbw1CGKDbn6f4QkriR5rpqNQcKWaK Das9cKf4Kex/umff4CQDSxE68pUuNrc91a40A+XpEA8pEscsh2XaGfeLvtP/+p326LJPCH 3kptffuCJ3Ei59ucZ1SCalB9qssOqYo= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-277-J9ofbRO2OVmlMgcy02qF_g-1; Thu, 20 Jul 2023 11:22:22 -0400 X-MC-Unique: J9ofbRO2OVmlMgcy02qF_g-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 024E184B16F; Thu, 20 Jul 2023 15:21:31 +0000 (UTC) Received: from rh.redhat.com (unknown [10.39.192.15]) by smtp.corp.redhat.com (Postfix) with ESMTP id E003B4CD0E1; Thu, 20 Jul 2023 15:21:29 +0000 (UTC) From: Kevin Traynor To: Boleslav Stankevich Cc: Andrew Rybchenko , Chenbo Xia , dpdk stable Subject: patch 'net/virtio: fix initialization to return negative errno' has been queued to stable release 21.11.5 Date: Thu, 20 Jul 2023 16:18:09 +0100 Message-ID: <20230720151942.262154-58-ktraynor@redhat.com> In-Reply-To: <20230720151942.262154-1-ktraynor@redhat.com> References: <20230720151942.262154-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true 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, FYI, your patch has been queued to stable release 21.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 07/25/23. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/32d51fbf8191fbddec34c5f3958b48dc715b982d Thanks. Kevin --- >From 32d51fbf8191fbddec34c5f3958b48dc715b982d Mon Sep 17 00:00:00 2001 From: Boleslav Stankevich Date: Wed, 22 Mar 2023 13:23:25 +0300 Subject: [PATCH] net/virtio: fix initialization to return negative errno [ upstream commit 55e19d06f8a8a865297532071453c10544a07a24 ] virtio_init_device() and called helper functions sometimes return -1 when return code should be negative errno. Fix all such cases to return correct negative errno instead. Fixes: 26b683b4f7d0 ("net/virtio: setup Rx queue interrupts") Fixes: 0c9d66207054 ("net/virtio: support RSS") Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0") Fixes: 49d26d9e3f47 ("net/virtio: support MTU feature") Signed-off-by: Boleslav Stankevich Signed-off-by: Andrew Rybchenko Reviewed-by: Chenbo Xia --- drivers/net/virtio/virtio_ethdev.c | 33 +++++++++++++++++------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 8b9b3d951f..f4d13ec3a1 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -1804,7 +1804,8 @@ virtio_configure_intr(struct rte_eth_dev *dev) } - if (rte_intr_efd_enable(dev->intr_handle, dev->data->nb_rx_queues)) { + ret = rte_intr_efd_enable(dev->intr_handle, dev->data->nb_rx_queues); + if (ret < 0) { PMD_INIT_LOG(ERR, "Fail to create eventfd"); - return -1; + return ret; } @@ -1835,10 +1836,11 @@ virtio_configure_intr(struct rte_eth_dev *dev) if (virtio_intr_enable(dev) < 0) { PMD_DRV_LOG(ERR, "interrupt enable failed"); - return -1; + return -EINVAL; } - if (virtio_queues_bind_intr(dev) < 0) { + ret = virtio_queues_bind_intr(dev); + if (ret < 0) { PMD_INIT_LOG(ERR, "Failed to bind queue/interrupt"); - return -1; + return ret; } @@ -2163,5 +2165,5 @@ virtio_dev_rss_init(struct rte_eth_dev *eth_dev) if (!hw->rss_key) { PMD_INIT_LOG(ERR, "Failed to allocate RSS key"); - return -1; + return -ENOMEM; } } @@ -2185,5 +2187,5 @@ virtio_dev_rss_init(struct rte_eth_dev *eth_dev) if (!hw->rss_reta) { PMD_INIT_LOG(ERR, "Failed to allocate RSS reta"); - return -1; + return -ENOMEM; } @@ -2225,5 +2227,5 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) virtio_set_status(hw, VIRTIO_CONFIG_STATUS_DRIVER); if (virtio_ethdev_negotiate_features(hw, req_features) < 0) - return -1; + return -EINVAL; hw->weak_barriers = !virtio_with_feature(hw, VIRTIO_F_ORDER_PLATFORM); @@ -2307,5 +2309,5 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) PMD_INIT_LOG(ERR, "invalid max MTU value (%u)", config->mtu); - return -1; + return -EINVAL; } @@ -2320,7 +2322,9 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) hw->rss_hash_types = 0; - if (virtio_with_feature(hw, VIRTIO_NET_F_RSS)) - if (virtio_dev_rss_init(eth_dev)) - return -1; + if (virtio_with_feature(hw, VIRTIO_NET_F_RSS)) { + ret = virtio_dev_rss_init(eth_dev); + if (ret < 0) + return ret; + } PMD_INIT_LOG(DEBUG, "config->max_virtqueue_pairs=%d", @@ -2344,8 +2348,9 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) if (eth_dev->data->dev_conf.intr_conf.rxq) { - if (virtio_configure_intr(eth_dev) < 0) { + ret = virtio_configure_intr(eth_dev); + if (ret < 0) { PMD_INIT_LOG(ERR, "failed to configure interrupt"); virtio_free_queues(hw); - return -1; + return ret; } } -- 2.41.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-07-20 16:18:02.058773209 +0100 +++ 0058-net-virtio-fix-initialization-to-return-negative-err.patch 2023-07-20 16:17:54.782751002 +0100 @@ -1 +1 @@ -From 55e19d06f8a8a865297532071453c10544a07a24 Mon Sep 17 00:00:00 2001 +From 32d51fbf8191fbddec34c5f3958b48dc715b982d Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 55e19d06f8a8a865297532071453c10544a07a24 ] + @@ -14 +15,0 @@ -Cc: stable@dpdk.org @@ -24 +25 @@ -index a81110e70a..2c23f1c00e 100644 +index 8b9b3d951f..f4d13ec3a1 100644 @@ -27 +28 @@ -@@ -1361,7 +1361,8 @@ virtio_configure_intr(struct rte_eth_dev *dev) +@@ -1804,7 +1804,8 @@ virtio_configure_intr(struct rte_eth_dev *dev) @@ -38 +39 @@ -@@ -1392,10 +1393,11 @@ virtio_configure_intr(struct rte_eth_dev *dev) +@@ -1835,10 +1836,11 @@ virtio_configure_intr(struct rte_eth_dev *dev) @@ -53 +54 @@ -@@ -1720,5 +1722,5 @@ virtio_dev_rss_init(struct rte_eth_dev *eth_dev) +@@ -2163,5 +2165,5 @@ virtio_dev_rss_init(struct rte_eth_dev *eth_dev) @@ -60 +61 @@ -@@ -1742,5 +1744,5 @@ virtio_dev_rss_init(struct rte_eth_dev *eth_dev) +@@ -2185,5 +2187,5 @@ virtio_dev_rss_init(struct rte_eth_dev *eth_dev) @@ -67 +68 @@ -@@ -1782,5 +1784,5 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) +@@ -2225,5 +2227,5 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) @@ -74 +75 @@ -@@ -1864,5 +1866,5 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) +@@ -2307,5 +2309,5 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) @@ -81 +82 @@ -@@ -1877,7 +1879,9 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) +@@ -2320,7 +2322,9 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) @@ -94 +95 @@ -@@ -1901,8 +1905,9 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) +@@ -2344,8 +2348,9 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)