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 9F5D645804 for ; Fri, 23 Aug 2024 18:24:03 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8D4EE433A1; Fri, 23 Aug 2024 18:24:03 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id B8FB44336D for ; Fri, 23 Aug 2024 18:24:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1724430242; 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=1k9U4hTs1uLfOY0kM/QdPA3IODQPCabGjSPtP4QW25Q=; b=bPO76rUkYRlL7bqD7XMny3BF0sy55n1+/AQH44lVa551jbpigkt3/zFKnQYFQMOFHA0qh4 Pf4wQN/NNsnonUOG0wzLHyKRBuxy6fPSAOrv5KB/k+iXZ4ZiF6nWQh7OzCzUO+mNXLLL6C aENjs30fPpjoyJiF4T0j/M5iuiFqS+Y= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-554-KLOsdM8dN7uVukQFefR5_w-1; Fri, 23 Aug 2024 12:24:00 -0400 X-MC-Unique: KLOsdM8dN7uVukQFefR5_w-1 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9DBEE195608A; Fri, 23 Aug 2024 16:23:59 +0000 (UTC) Received: from rh.redhat.com (unknown [10.39.193.224]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 095E21956053; Fri, 23 Aug 2024 16:23:56 +0000 (UTC) From: Kevin Traynor To: Zerun Fu Cc: Chaoyong He , Long Wu , Peng Zhang , Anatoly Burakov , Chenbo Xia , dpdk stable Subject: patch 'bus/pci: fix UIO resource mapping in secondary process' has been queued to stable release 21.11.8 Date: Fri, 23 Aug 2024 17:19:14 +0100 Message-ID: <20240823161929.1004778-126-ktraynor@redhat.com> In-Reply-To: <20240823161929.1004778-1-ktraynor@redhat.com> References: <20240823161929.1004778-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 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.8 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 08/28/24. 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/e904351613cd41271dc5911e38efa6ed9db7b26b Thanks. Kevin --- >From e904351613cd41271dc5911e38efa6ed9db7b26b Mon Sep 17 00:00:00 2001 From: Zerun Fu Date: Tue, 2 Jul 2024 15:40:06 +0800 Subject: [PATCH] bus/pci: fix UIO resource mapping in secondary process [ upstream commit 9e0a0e38ecaa7efaca9d349737d0a5ef9ca33a57 ] For the primary process, the logic loops all BARs and will skip the map of BAR with an invalid physical address (0), also will assign 'uio_res->nb_maps' with the real mapped BARs number. But for the secondary process, instead of loops all BARs, the logic using the 'uio_res->nb_map' as index. If the device uses continuous BARs there will be no problem, whereas if it uses discrete BARs, it will lead to mapping errors. Fix this problem by also loops all BARs and skip the map of BAR with an invalid physical address in secondary process. Fixes: 9b957f378abf ("pci: merge uio functions for linux and bsd") Signed-off-by: Zerun Fu Reviewed-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang Acked-by: Anatoly Burakov Reviewed-by: Chenbo Xia --- drivers/bus/pci/pci_common_uio.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/bus/pci/pci_common_uio.c b/drivers/bus/pci/pci_common_uio.c index 76c661f054..f44ccdf27c 100644 --- a/drivers/bus/pci/pci_common_uio.c +++ b/drivers/bus/pci/pci_common_uio.c @@ -27,5 +27,5 @@ static int pci_uio_map_secondary(struct rte_pci_device *dev) { - int fd, i, j; + int fd, i = 0, j, res_idx; struct mapped_pci_resource *uio_res; struct mapped_pci_res_list *uio_res_list = @@ -38,5 +38,13 @@ pci_uio_map_secondary(struct rte_pci_device *dev) continue; - for (i = 0; i != uio_res->nb_maps; i++) { + /* Map all BARs */ + for (res_idx = 0; res_idx != PCI_MAX_RESOURCE; res_idx++) { + /* skip empty BAR */ + if (dev->mem_resource[res_idx].phys_addr == 0) + continue; + + if (i >= uio_res->nb_maps) + return -1; + /* * open devname, to mmap it @@ -72,5 +80,7 @@ pci_uio_map_secondary(struct rte_pci_device *dev) return -1; } - dev->mem_resource[i].addr = mapaddr; + dev->mem_resource[res_idx].addr = mapaddr; + + i++; } return 0; -- 2.46.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2024-08-23 17:18:13.493227913 +0100 +++ 0126-bus-pci-fix-UIO-resource-mapping-in-secondary-proces.patch 2024-08-23 17:18:09.890430699 +0100 @@ -1 +1 @@ -From 9e0a0e38ecaa7efaca9d349737d0a5ef9ca33a57 Mon Sep 17 00:00:00 2001 +From e904351613cd41271dc5911e38efa6ed9db7b26b Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 9e0a0e38ecaa7efaca9d349737d0a5ef9ca33a57 ] + @@ -18 +19,0 @@ -Cc: stable@dpdk.org @@ -31 +32 @@ -index ff1b02b6bd..65f72b7cc6 100644 +index 76c661f054..f44ccdf27c 100644 @@ -56 +57 @@ -@@ -71,5 +79,7 @@ pci_uio_map_secondary(struct rte_pci_device *dev) +@@ -72,5 +80,7 @@ pci_uio_map_secondary(struct rte_pci_device *dev)