!659 [sync] PR-657: Sync DPDK upstream patch about bugfix
From: @openeuler-sync-bot Reviewed-by: @li-huisong Signed-off-by: @li-huisong
This commit is contained in:
commit
d785f482df
@ -0,0 +1,77 @@
|
|||||||
|
From d322cdf1a702fe56219c059dae9e360b1a3f0f8b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Zerun Fu <zerun.fu@corigine.com>
|
||||||
|
Date: Tue, 2 Jul 2024 15:40:06 +0800
|
||||||
|
Subject: [PATCH 484/485] 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")
|
||||||
|
Cc: stable@dpdk.org
|
||||||
|
|
||||||
|
Signed-off-by: Zerun Fu <zerun.fu@corigine.com>
|
||||||
|
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
|
||||||
|
Reviewed-by: Long Wu <long.wu@corigine.com>
|
||||||
|
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
|
||||||
|
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
|
||||||
|
Reviewed-by: Chenbo Xia <chenbox@nvidia.com>
|
||||||
|
Signed-off-by: chenyi <chenyi211@huawei.com>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
@@ -26,7 +26,7 @@ EAL_REGISTER_TAILQ(rte_uio_tailq)
|
||||||
|
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 =
|
||||||
|
RTE_TAILQ_CAST(rte_uio_tailq.head, mapped_pci_res_list);
|
||||||
|
@@ -37,7 +37,15 @@ pci_uio_map_secondary(struct rte_pci_device *dev)
|
||||||
|
if (rte_pci_addr_cmp(&uio_res->pci_addr, &dev->addr))
|
||||||
|
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
|
||||||
|
*/
|
||||||
|
@@ -71,7 +79,9 @@ 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.33.0
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
Name: dpdk
|
Name: dpdk
|
||||||
Version: 21.11
|
Version: 21.11
|
||||||
Release: 77
|
Release: 78
|
||||||
Packager: packaging@6wind.com
|
Packager: packaging@6wind.com
|
||||||
URL: http://dpdk.org
|
URL: http://dpdk.org
|
||||||
%global source_version 21.11
|
%global source_version 21.11
|
||||||
@ -519,6 +519,8 @@ Patch9482: 0482-af_xdp-del-XDP_USE_SG-and-XDP_PKT_CONTD-definition.patch
|
|||||||
|
|
||||||
Patch9483: 0483-af_xdp-fix-mbuf-ol_flags-not-init.patch
|
Patch9483: 0483-af_xdp-fix-mbuf-ol_flags-not-init.patch
|
||||||
|
|
||||||
|
Patch9484: 0484-bus-pci-fix-UIO-resource-mapping-in-secondary-proces.patch
|
||||||
|
|
||||||
Summary: Data Plane Development Kit core
|
Summary: Data Plane Development Kit core
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
License: BSD and LGPLv2 and GPLv2
|
License: BSD and LGPLv2 and GPLv2
|
||||||
@ -685,6 +687,10 @@ fi
|
|||||||
/usr/sbin/depmod
|
/usr/sbin/depmod
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 23 2024 chenyi <chenyi211@huawei.com> - 21.11-78
|
||||||
|
Sync some patches from upstream about bugfix, modifies are as follow:
|
||||||
|
- bus/pci: fix UIO resource mapping in secondary process
|
||||||
|
|
||||||
* Wed Oct 09 2024 jiangheng <jiangheng14@huawei.com> - 21.11-77
|
* Wed Oct 09 2024 jiangheng <jiangheng14@huawei.com> - 21.11-77
|
||||||
af_xdp: fix mbuf ol_flags not init
|
af_xdp: fix mbuf ol_flags not init
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user