diff --git a/0216-igb-uio-fix-build-with-Linux-6.1.patch b/0216-igb-uio-fix-build-with-Linux-6.1.patch deleted file mode 100644 index 04ef043b2c5ec1209ec43378b13930fd896005ee..0000000000000000000000000000000000000000 --- a/0216-igb-uio-fix-build-with-Linux-6.1.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 9312bf5b08a1f4532d7aeb702fd59f794cca9044 Mon Sep 17 00:00:00 2001 -From: jiangheng -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 - diff --git a/0220-net-hns3-fix-inaccurate-RTC-time-to-read.patch b/0220-net-hns3-fix-inaccurate-RTC-time-to-read.patch new file mode 100644 index 0000000000000000000000000000000000000000..59a0c082af6ce12b7c6ccc8c5549e4b2b7b8329c --- /dev/null +++ b/0220-net-hns3-fix-inaccurate-RTC-time-to-read.patch @@ -0,0 +1,53 @@ +From 3cd01cd12d4987b76be0ff1b25bc21a558aab6f1 Mon Sep 17 00:00:00 2001 +From: Huisong Li +Date: Mon, 9 Jan 2023 16:23:44 +0800 +Subject: net/hns3: fix inaccurate RTC time to read + +[ upstream commit 4243282181f38d387188af5fd38a5428864a94a2 ] + +The sequence of reading current RTC time register doesn't meet +the hardware requirements, which causes this time obtained is +the one before modifying RTC time. + +Fixes: 38b539d96eb6 ("net/hns3: support IEEE 1588 PTP") +Cc: stable@dpdk.org + +Signed-off-by: Huisong Li +Acked-by: Dongdong Liu +--- + drivers/net/hns3/hns3_ptp.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/drivers/net/hns3/hns3_ptp.c b/drivers/net/hns3/hns3_ptp.c +index 6bbd85ba23..db3c007b12 100644 +--- a/drivers/net/hns3/hns3_ptp.c ++++ b/drivers/net/hns3/hns3_ptp.c +@@ -216,17 +216,21 @@ hns3_timesync_read_tx_timestamp(struct rte_eth_dev *dev, + int + hns3_timesync_read_time(struct rte_eth_dev *dev, struct timespec *ts) + { ++#define HNS3_PTP_SEC_H_OFFSET 32 ++#define HNS3_PTP_SEC_H_MASK 0xFFFF ++ + struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private); ++ uint32_t sec_hi, sec_lo; + uint64_t ns, sec; + + if (!hns3_dev_get_support(hw, PTP)) + return -ENOTSUP; + +- sec = hns3_read_dev(hw, HNS3_CURR_TIME_OUT_L); +- sec |= (uint64_t)(hns3_read_dev(hw, HNS3_CURR_TIME_OUT_H) & 0xFFFF) +- << 32; +- + ns = hns3_read_dev(hw, HNS3_CURR_TIME_OUT_NS); ++ sec_hi = hns3_read_dev(hw, HNS3_CURR_TIME_OUT_H) & HNS3_PTP_SEC_H_MASK; ++ sec_lo = hns3_read_dev(hw, HNS3_CURR_TIME_OUT_L); ++ sec = ((uint64_t)sec_hi << HNS3_PTP_SEC_H_OFFSET) | sec_lo; ++ + ns += sec * NSEC_PER_SEC; + *ts = rte_ns_to_timespec(ns); + +-- +2.23.0 + diff --git a/dpdk.spec b/dpdk.spec index 30ede1c67983907b3f9b27de4eb1a82590d220d9..649f53e387c0847c5e18262d3251aa082d4d8103 100644 --- a/dpdk.spec +++ b/dpdk.spec @@ -1,6 +1,6 @@ Name: dpdk Version: 21.11 -Release: 28 +Release: 29 Packager: packaging@6wind.com URL: http://dpdk.org %global source_version 21.11 @@ -237,6 +237,7 @@ 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 Summary: Data Plane Development Kit core Group: System Environment/Libraries @@ -379,6 +380,9 @@ strip -g $RPM_BUILD_ROOT/lib/modules/%{kern_devel_ver}/extra/dpdk/igb_uio.ko /usr/sbin/depmod %changelog +* Tue Jan 31 2023 chenjiji - 21.11-29 +- net/hns3: fix inaccurate RTC time to read + * Wed Jan 18 2023 jiangheng - 21.11-28 - fix build failed due to kernel upgrate to 6.1