!303 fix build failed due to kernel to upgrade 6.1

From: @jiangheng12 
Reviewed-by: @wu-changsheng 
Signed-off-by: @wu-changsheng
This commit is contained in:
openeuler-ci-bot 2023-02-28 01:12:07 +00:00 committed by Gitee
commit a52c7f3e21
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
18 changed files with 429 additions and 12 deletions

View File

@ -0,0 +1,53 @@
From 3aeeea257f187e4a05e3a7f70915c82808fb0ee8 Mon Sep 17 00:00:00 2001
From: Jiri Slaby <jslaby@suse.cz>
Date: Wed, 1 Jun 2022 08:53:58 +0200
Subject: [PATCH] kni: fix build with Linux 5.18
[ upstream commit c98600d4bed6d15599e448990f2ba117ca938a2d ]
Since commit 2655926aea9b (net: Remove netif_rx_any_context() and
netif_rx_ni().) in 5.18, netif_rx_ni() no longer exists as netif_rx()
can be called from any context. So define HAVE_NETIF_RX_NI for older
releases and call the appropriate function in kni_net.
netif_rx_ni() must be used on older kernel since netif_rx() might
might lead to deadlocks or other problems there.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
kernel/linux/kni/compat.h | 4 ++++
kernel/linux/kni/kni_net.c | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/kernel/linux/kni/compat.h b/kernel/linux/kni/compat.h
index 664785674f..0db29a4a6f 100644
--- a/kernel/linux/kni/compat.h
+++ b/kernel/linux/kni/compat.h
@@ -141,3 +141,7 @@
#if KERNEL_VERSION(5, 9, 0) > LINUX_VERSION_CODE
#define HAVE_TSK_IN_GUP
#endif
+
+#if KERNEL_VERSION(5, 18, 0) > LINUX_VERSION_CODE
+#define HAVE_NETIF_RX_NI
+#endif
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
index 29e5b9e21f..a8b092b756 100644
--- a/kernel/linux/kni/kni_net.c
+++ b/kernel/linux/kni/kni_net.c
@@ -441,7 +441,11 @@ kni_net_rx_normal(struct kni_dev *kni)
skb->ip_summed = CHECKSUM_UNNECESSARY;
/* Call netif interface */
+#ifdef HAVE_NETIF_RX_NI
netif_rx_ni(skb);
+#else
+ netif_rx(skb);
+#endif
/* Update statistics */
dev->stats.rx_bytes += len;
--
2.23.0

View File

@ -0,0 +1,100 @@
From 9312bf5b08a1f4532d7aeb702fd59f794cca9044 Mon Sep 17 00:00:00 2001
From: jiangheng <jiangheng14@huawei.com>
Date: Wed, 18 Jan 2023 19:29:17 +0800
Subject: [PATCH] igb_uio: fix build whit Linux 6.1
---
kernel/linux/igb_uio/igb_uio.c | 10 +++++-----
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
index ea439d1..311cc87 100644
--- a/kernel/linux/igb_uio/igb_uio.c
+++ b/kernel/linux/igb_uio/igb_uio.c
@@ -250,7 +250,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
}
#endif
- /* falls through - to MSI */
+ /* fall through */
case RTE_INTR_MODE_MSI:
#ifndef HAVE_ALLOC_IRQ_VECTORS
if (pci_enable_msi(udev->pdev) == 0) {
@@ -269,7 +269,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
break;
}
#endif
- /* falls through - to INTX */
+ /* fall through */
case RTE_INTR_MODE_LEGACY:
if (pci_intx_mask_supported(udev->pdev)) {
dev_dbg(&udev->pdev->dev, "using INTX");
@@ -279,7 +279,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
break;
}
dev_notice(&udev->pdev->dev, "PCI INTX mask not supported\n");
- /* falls through - to no IRQ */
+ /* fall through */
case RTE_INTR_MODE_NONE:
udev->mode = RTE_INTR_MODE_NONE;
udev->info.irq = UIO_IRQ_NONE;
@@ -512,13 +512,13 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
goto fail_release_iomem;
/* set 64-bit DMA mask */
- err = pci_set_dma_mask(dev, DMA_BIT_MASK(64));
+ err = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64));
if (err != 0) {
dev_err(&dev->dev, "Cannot set DMA mask\n");
goto fail_release_iomem;
}
- err = pci_set_consistent_dma_mask(dev, DMA_BIT_MASK(64));
+ err = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64));
if (err != 0) {
dev_err(&dev->dev, "Cannot set consistent DMA mask\n");
goto fail_release_iomem;
diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c
index ad1582d..c5a20e7 100644
--- a/kernel/linux/kni/kni_misc.c
+++ b/kernel/linux/kni/kni_misc.c
@@ -405,10 +405,10 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
/* if user has provided a valid mac address */
if (is_valid_ether_addr(dev_info.mac_addr))
- memcpy(net_dev->dev_addr, dev_info.mac_addr, ETH_ALEN);
+ memcpy((void *)net_dev->dev_addr, (void *)dev_info.mac_addr, ETH_ALEN);
else
/* Generate random MAC address. */
- eth_random_addr(net_dev->dev_addr);
+ eth_random_addr((u8 *)net_dev->dev_addr);
if (dev_info.mtu)
net_dev->mtu = dev_info.mtu;
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
index 29e5b9e..32048e6 100644
--- a/kernel/linux/kni/kni_net.c
+++ b/kernel/linux/kni/kni_net.c
@@ -441,7 +441,7 @@ kni_net_rx_normal(struct kni_dev *kni)
skb->ip_summed = CHECKSUM_UNNECESSARY;
/* Call netif interface */
- netif_rx_ni(skb);
+ netif_rx(skb);
/* Update statistics */
dev->stats.rx_bytes += len;
@@ -778,8 +778,8 @@ kni_net_set_mac(struct net_device *netdev, void *p)
if (!is_valid_ether_addr((unsigned char *)(addr->sa_data)))
return -EADDRNOTAVAIL;
- memcpy(req.mac_addr, addr->sa_data, netdev->addr_len);
- memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len);
+ memcpy((void *)req.mac_addr, (void *)addr->sa_data, netdev->addr_len);
+ memcpy((void *)netdev->dev_addr, (void *)addr->sa_data, netdev->addr_len);
ret = kni_net_process_request(netdev, &req);
--
2.23.0

View File

@ -0,0 +1,49 @@
From 9b7982b9867a3c28728f73678ff9cf497dde72f3 Mon Sep 17 00:00:00 2001
From: Ke Zhang <ke1x.zhang@intel.com>
Date: Wed, 8 Jun 2022 15:11:16 +0300
Subject: [PATCH] kni: use dedicated function to set random MAC address
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit 2ee8c67ef9399759cb0d3f34b2c9fb6ea0ecc832 ]
eth_hw_addr_random() sets address type correctly.
eth_hw_addr_random() is available since Linux v3.4, so
no compat is required.
Also fix the warning:
warning: passing argument 1 of memcpy discards const
qualifier from pointer target type
Variable dev_addr is done const intentionally in Linux v5.17 to
prevent using it directly.
Fixes: ea6b39b5b847 ("kni: remove ethtool support")
Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
---
kernel/linux/kni/kni_misc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c
index ad1582d911..38fcd7f4f2 100644
--- a/kernel/linux/kni/kni_misc.c
+++ b/kernel/linux/kni/kni_misc.c
@@ -407,8 +407,8 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
if (is_valid_ether_addr(dev_info.mac_addr))
memcpy(net_dev->dev_addr, dev_info.mac_addr, ETH_ALEN);
else
- /* Generate random MAC address. */
- eth_random_addr(net_dev->dev_addr);
+ /* Assign random MAC address. */
+ eth_hw_addr_random(net_dev);
if (dev_info.mtu)
net_dev->mtu = dev_info.mtu;
--
2.23.0

View File

@ -0,0 +1,89 @@
From 4cfe56040171e791b021d5490f8fd58c55b088fb Mon Sep 17 00:00:00 2001
From: Ke Zhang <ke1x.zhang@intel.com>
Date: Wed, 8 Jun 2022 15:11:17 +0300
Subject: [PATCH] kni: use dedicated function to set MAC address
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit b99bd4a0aacab47165d045a6aeee88ee74744600 ]
The warning info:
warning: passing argument 1 of memcpy discards const
qualifier from pointer target type
Variable dev_addr is done const intentionally in v5.17 to prevent using
it directly. See the following Linux kernel changeset for details:
commit adeef3e32146 ("net: constify netdev->dev_addr")
Used helper function was introduced earlier in v5.15.
Fixes: ea6b39b5b847 ("kni: remove ethtool support")
Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Ferruh Yigit <ferruh.yigit@xilinx.com>
---
kernel/linux/kni/compat.h | 4 ++++
kernel/linux/kni/kni_misc.c | 9 +++++++--
kernel/linux/kni/kni_net.c | 4 ++++
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/kernel/linux/kni/compat.h b/kernel/linux/kni/compat.h
index 0db29a4a6f..3a86d12bbc 100644
--- a/kernel/linux/kni/compat.h
+++ b/kernel/linux/kni/compat.h
@@ -142,6 +142,10 @@
#define HAVE_TSK_IN_GUP
#endif
+#if KERNEL_VERSION(5, 15, 0) <= LINUX_VERSION_CODE
+#define HAVE_ETH_HW_ADDR_SET
+#endif
+
#if KERNEL_VERSION(5, 18, 0) > LINUX_VERSION_CODE
#define HAVE_NETIF_RX_NI
#endif
diff --git a/kernel/linux/kni/kni_misc.c b/kernel/linux/kni/kni_misc.c
index 38fcd7f4f2..feed12b568 100644
--- a/kernel/linux/kni/kni_misc.c
+++ b/kernel/linux/kni/kni_misc.c
@@ -404,11 +404,16 @@ kni_ioctl_create(struct net *net, uint32_t ioctl_num,
pr_debug("mbuf_size: %u\n", kni->mbuf_size);
/* if user has provided a valid mac address */
- if (is_valid_ether_addr(dev_info.mac_addr))
+ if (is_valid_ether_addr(dev_info.mac_addr)) {
+#ifdef HAVE_ETH_HW_ADDR_SET
+ eth_hw_addr_set(net_dev, dev_info.mac_addr);
+#else
memcpy(net_dev->dev_addr, dev_info.mac_addr, ETH_ALEN);
- else
+#endif
+ } else {
/* Assign random MAC address. */
eth_hw_addr_random(net_dev);
+ }
if (dev_info.mtu)
net_dev->mtu = dev_info.mtu;
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
index 41805fcabf..779ee3451a 100644
--- a/kernel/linux/kni/kni_net.c
+++ b/kernel/linux/kni/kni_net.c
@@ -783,7 +783,11 @@ kni_net_set_mac(struct net_device *netdev, void *p)
return -EADDRNOTAVAIL;
memcpy(req.mac_addr, addr->sa_data, netdev->addr_len);
+#ifdef HAVE_ETH_HW_ADDR_SET
+ eth_hw_addr_set(netdev, addr->sa_data);
+#else
memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len);
+#endif
ret = kni_net_process_request(netdev, &req);
--
2.23.0

View File

@ -0,0 +1,78 @@
From e68a705cc5dc3d1333bbcd722fe4e9a6ba3ee648 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Thu, 16 Dec 2021 12:03:49 +0000
Subject: [PATCH] linux/igb_uio: fix build for switch fall through
Linux is using '-Wimplicit-fallthrough=5' compiler option, which doesn't
take any fall through comments into account but only uses compiler
'fallthrough' attribute to document fall through action is intended.
"falls through" comment was used in the code which is causing a build
error now, this patch converts comment to the 'fallthrough' macro
defined in the Linux.
To cover the case where an old Linux version doesn't have the macro,
defined it in the compatibility header too.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
linux/igb_uio/compat.h | 14 ++++++++++++++
linux/igb_uio/igb_uio.c | 6 +++---
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/kernel/linux/igb_uio/compat.h b/kernel/linux/igb_uio/compat.h
index 8dbb896..71172f4 100644
--- a/kernel/linux/igb_uio/compat.h
+++ b/kernel/linux/igb_uio/compat.h
@@ -152,3 +152,17 @@ static inline bool igbuio_kernel_is_locked_down(void)
return false;
#endif
}
+
+#ifndef fallthrough
+
+#ifndef __has_attribute
+#define __has_attribute(x) 0
+#endif
+
+#if __has_attribute(__fallthrough__)
+#define fallthrough __attribute__((__fallthrough__))
+#else
+#define fallthrough do {} while (0) /* fallthrough */
+#endif
+
+#endif
diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
index ea439d1..33e0e02 100644
--- a/kernel/linux/igb_uio/igb_uio.c
+++ b/kernel/linux/igb_uio/igb_uio.c
@@ -250,7 +250,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
}
#endif
- /* falls through - to MSI */
+ fallthrough;
case RTE_INTR_MODE_MSI:
#ifndef HAVE_ALLOC_IRQ_VECTORS
if (pci_enable_msi(udev->pdev) == 0) {
@@ -269,7 +269,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
break;
}
#endif
- /* falls through - to INTX */
+ fallthrough;
case RTE_INTR_MODE_LEGACY:
if (pci_intx_mask_supported(udev->pdev)) {
dev_dbg(&udev->pdev->dev, "using INTX");
@@ -279,7 +279,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
break;
}
dev_notice(&udev->pdev->dev, "PCI INTX mask not supported\n");
- /* falls through - to no IRQ */
+ fallthrough;
case RTE_INTR_MODE_NONE:
udev->mode = RTE_INTR_MODE_NONE;
udev->info.irq = UIO_IRQ_NONE;
--
2.23.0

View File

@ -0,0 +1,38 @@
From ca5ef06359c9deb513d6817610e5d8ba18f86279 Mon Sep 17 00:00:00 2001
From: jiangheng <jiangheng14@huawei.com>
Date: Mon, 30 Jan 2023 10:37:47 +0800
Subject: [PATCH] linux/igb_uio: fix build with linux 5.18
---
kernel/linux/igb_uio/igb_uio.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
index ea439d1..194a5ff 100644
--- a/kernel/linux/igb_uio/igb_uio.c
+++ b/kernel/linux/igb_uio/igb_uio.c
@@ -512,13 +512,21 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
goto fail_release_iomem;
/* set 64-bit DMA mask */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
err = pci_set_dma_mask(dev, DMA_BIT_MASK(64));
+#else
+ err = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64));
+#endif
if (err != 0) {
dev_err(&dev->dev, "Cannot set DMA mask\n");
goto fail_release_iomem;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
err = pci_set_consistent_dma_mask(dev, DMA_BIT_MASK(64));
+#else
+ err = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64));
+#endif
if (err != 0) {
dev_err(&dev->dev, "Cannot set consistent DMA mask\n");
goto fail_release_iomem;
--
2.23.0

View File

@ -1,6 +1,6 @@
Name: dpdk
Version: 21.11
Release: 29
Release: 30
Packager: packaging@6wind.com
URL: http://dpdk.org
%global source_version 21.11
@ -232,17 +232,24 @@ Patch9211: 0211-app-procinfo-dump-module-EEPROM-info.patch
Patch9212: 0212-app-procinfo-add-burst-mode-to-Rx-Tx-queue-info.patch
Patch9213: 0213-app-procinfo-dump-detailed-info-for-Rx-Tx-descriptor.patch
Patch9214: 0214-dma-hisilicon-support-vchan-status-query.patch
Patch9215: 0215-net-hns3-fix-inaccurate-RTC-time-to-read.patch
Patch9218: 0216-net-hns3-fix-log-about-indirection-table-size.patch
Patch9219: 0217-net-hns3-extract-common-function-to-query-device.patch
Patch9220: 0218-net-hns3-refactor-set-RSS-hash-algorithm-and-key-int.patch
Patch9221: 0219-net-hns3-fix-RSS-key-size-compatibility.patch
Patch9222: 0220-net-hns3-fix-clearing-RSS-configuration.patch
Patch9223: 0221-net-hns3-use-RSS-filter-list-to-check-duplicated-rul.patch
Patch9224: 0222-net-hns3-remove-useless-code-when-destroy-valid-RSS-.patch
Patch9225: 0223-net-hns3-fix-warning-on-flush-or-destroy-rule.patch
Patch9226: 0224-net-hns3-fix-config-struct-used-for-conversion.patch
Patch9227: 0225-net-hns3-fix-duplicate-RSS-rule-check.patch
Patch9215: 0215-kni-fix-build-with-Linux-5.18.patch
Patch9216: 0216-kni-use-dedicated-function-to-set-random-MAC-address.patch
Patch9217: 0217-kni-use-dedicated-function-to-set-MAC-address.patch
Patch9218: 0218-linux-igb_uio-fix-build-for-switch-fall-through.patch
Patch9219: 0219-linux-igb_uio-fix-build-with-liux-5.18.patch
Patch9220: 0220-net-hns3-fix-inaccurate-RTC-time-to-read.patch
Patch9221: 0221-net-hns3-fix-log-about-indirection-table-size.patch
Patch9222: 0222-net-hns3-extract-common-function-to-query-device.patch
Patch9223: 0223-net-hns3-refactor-set-RSS-hash-algorithm-and-key-int.patch
Patch9224: 0224-net-hns3-fix-RSS-key-size-compatibility.patch
Patch9225: 0225-net-hns3-fix-clearing-RSS-configuration.patch
Patch9226: 0226-net-hns3-use-RSS-filter-list-to-check-duplicated-rul.patch
Patch9227: 0227-net-hns3-remove-useless-code-when-destroy-valid-RSS-.patch
Patch9228: 0228-net-hns3-fix-warning-on-flush-or-destroy-rule.patch
Patch9229: 0229-net-hns3-fix-config-struct-used-for-conversion.patch
Patch9230: 0230-net-hns3-fix-duplicate-RSS-rule-check.patch
Summary: Data Plane Development Kit core
Group: System Environment/Libraries
@ -385,6 +392,9 @@ strip -g $RPM_BUILD_ROOT/lib/modules/%{kern_devel_ver}/extra/dpdk/igb_uio.ko
/usr/sbin/depmod
%changelog
* Mon Feb 27 2023 jiangheng <jiangheng14@huawei.com> - 21.11-29
- fix build failed due to kernel upgrate to 6.1
* Tue Feb 14 2023 chenjiji <chenjiji09@163.com> - 21.11-29
Sync some RSS bugfix for hns3 PMD. And patchs are as follows:
- net/hns3: fix log about indirection table size