Compare commits
10 Commits
894fb18c47
...
c8770a789c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c8770a789c | ||
|
|
7ccba53ecf | ||
|
|
ccebee4b4a | ||
|
|
8dd007ff67 | ||
|
|
269dc4f0bb | ||
|
|
bb1e327a65 | ||
|
|
2a77451a90 | ||
|
|
ae12b50b03 | ||
|
|
58bff68715 | ||
|
|
b1d18f06fb |
@ -1,60 +0,0 @@
|
||||
From f3ccfda1931977b80267ba54070a1aeafa18f6ca Mon Sep 17 00:00:00 2001
|
||||
From: Yufeng Mo <moyufeng@huawei.com>
|
||||
Date: Fri, 20 Aug 2021 15:35:18 +0800
|
||||
Subject: [PATCH] ethtool: extend coalesce setting uAPI with CQE mode
|
||||
|
||||
In order to support more coalesce parameters through netlink,
|
||||
add two new parameter kernel_coal and extack for .set_coalesce
|
||||
and .get_coalesce, then some extra info can return to user with
|
||||
the netlink API.
|
||||
|
||||
Signed-off-by: Yufeng Mo <moyufeng@huawei.com>
|
||||
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
src/iavf_ethtool.c | 12 ++++++++++--
|
||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/iavf_ethtool.c b/src/iavf_ethtool.c
|
||||
index 3f7d427..4b60027 100644
|
||||
--- a/src/iavf_ethtool.c
|
||||
+++ b/src/iavf_ethtool.c
|
||||
@@ -753,6 +753,8 @@ static int __iavf_get_coalesce(struct net_device *netdev,
|
||||
* iavf_get_coalesce - Get interrupt coalescing settings
|
||||
* @netdev: network interface device structure
|
||||
* @ec: ethtool coalesce structure
|
||||
+ * @kernel_coal: ethtool CQE mode setting structure
|
||||
+ * @extack: extack for reporting error messages
|
||||
*
|
||||
* Returns current coalescing settings. This is referred to elsewhere in the
|
||||
* driver as Interrupt Throttle Rate, as this is how the hardware describes
|
||||
@@ -760,7 +762,9 @@ static int __iavf_get_coalesce(struct net_device *netdev,
|
||||
* only represents the settings of queue 0.
|
||||
**/
|
||||
static int iavf_get_coalesce(struct net_device *netdev,
|
||||
- struct ethtool_coalesce *ec)
|
||||
+ struct ethtool_coalesce *ec,
|
||||
+ struct kernel_ethtool_coalesce *kernel_coal,
|
||||
+ struct netlink_ext_ack *extack)
|
||||
{
|
||||
return __iavf_get_coalesce(netdev, ec, -1);
|
||||
}
|
||||
@@ -898,11 +902,15 @@ static int __iavf_set_coalesce(struct net_device *netdev,
|
||||
* iavf_set_coalesce - Set interrupt coalescing settings
|
||||
* @netdev: network interface device structure
|
||||
* @ec: ethtool coalesce structure
|
||||
+ * @kernel_coal: ethtool CQE mode setting structure
|
||||
+ * @extack: extack for reporting error messages
|
||||
*
|
||||
* Change current coalescing settings for every queue.
|
||||
**/
|
||||
static int iavf_set_coalesce(struct net_device *netdev,
|
||||
- struct ethtool_coalesce *ec)
|
||||
+ struct ethtool_coalesce *ec,
|
||||
+ struct kernel_ethtool_coalesce *kernel_coal,
|
||||
+ struct netlink_ext_ack *extack)
|
||||
{
|
||||
return __iavf_set_coalesce(netdev, ec, -1);
|
||||
}
|
||||
--
|
||||
2.30.0
|
||||
91
backport-fix-build-error-with-Linux-6.4.patch
Normal file
91
backport-fix-build-error-with-Linux-6.4.patch
Normal file
@ -0,0 +1,91 @@
|
||||
From 068c38ad88ccb09e5e966d4db5cedab0e02b3b95 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 26 Oct 2022 15:22:14 +0200
|
||||
Subject: net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers).
|
||||
|
||||
Now that the 32bit UP oddity is gone and 32bit uses always a sequence
|
||||
count, there is no need for the fetch_irq() variants anymore.
|
||||
|
||||
Convert to the regular interface.
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
---
|
||||
src/iavf_ethtool_stats.h | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/iavf_ethtool_stats.h b/src/iavf_ethtool_stats.h
|
||||
index 2c658aa..2733c0e 100644
|
||||
--- a/src/iavf_ethtool_stats.h
|
||||
+++ b/src/iavf_ethtool_stats.h
|
||||
@@ -228,7 +228,7 @@ enum iavf_chnl_stat_type {
|
||||
* @stat_type: stat_type could be TX/TX/VECTOR
|
||||
*
|
||||
* Queue statistics must be copied while protected by
|
||||
- * u64_stats_fetch_begin_irq, so we can't directly use iavf_add_ethtool_stats.
|
||||
+ * u64_stats_fetch_begin, so we can't directly use iavf_add_ethtool_stats.
|
||||
* Assumes that queue stats are defined in iavf_gstrings_queue_stats. If the
|
||||
* ring pointer is null, zero out the queue stat values and update the data
|
||||
* pointer. Otherwise safely copy the stats from the ring into the supplied
|
||||
@@ -273,12 +273,12 @@ iavf_add_queue_stats_chnl(u64 **data, struct iavf_ring *ring,
|
||||
|
||||
/* To avoid invalid statistics values, ensure that we keep retrying
|
||||
* the copy until we get a consistent value according to
|
||||
- * u64_stats_fetch_retry_irq. But first, make sure our ring is
|
||||
+ * u64_stats_fetch_retry. But first, make sure our ring is
|
||||
* non-null before attempting to access its syncp.
|
||||
*/
|
||||
#ifdef HAVE_NDO_GET_STATS64
|
||||
do {
|
||||
- start = !ring ? 0 : u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
+ start = !ring ? 0 : u64_stats_fetch_begin(&ring->syncp);
|
||||
#endif
|
||||
for (i = 0; i < size; i++) {
|
||||
void *ptr = ring;
|
||||
@@ -289,7 +289,7 @@ iavf_add_queue_stats_chnl(u64 **data, struct iavf_ring *ring,
|
||||
&stats[i]);
|
||||
}
|
||||
#ifdef HAVE_NDO_GET_STATS64
|
||||
- } while (ring && u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
+ } while (ring && u64_stats_fetch_retry(&ring->syncp, start));
|
||||
#endif
|
||||
|
||||
/* Once we successfully copy the stats in, update the data pointer */
|
||||
@@ -302,7 +302,7 @@ iavf_add_queue_stats_chnl(u64 **data, struct iavf_ring *ring,
|
||||
* @ring: the ring to copy
|
||||
*
|
||||
* Queue statistics must be copied while protected by
|
||||
- * u64_stats_fetch_begin_irq, so we can't directly use iavf_add_ethtool_stats.
|
||||
+ * u64_stats_fetch_begin, so we can't directly use iavf_add_ethtool_stats.
|
||||
* Assumes that queue stats are defined in iavf_gstrings_queue_stats. If the
|
||||
* ring pointer is null, zero out the queue stat values and update the data
|
||||
* pointer. Otherwise safely copy the stats from the ring into the supplied
|
||||
@@ -322,19 +322,19 @@ iavf_add_queue_stats(u64 **data, struct iavf_ring *ring)
|
||||
|
||||
/* To avoid invalid statistics values, ensure that we keep retrying
|
||||
* the copy until we get a consistent value according to
|
||||
- * u64_stats_fetch_retry_irq. But first, make sure our ring is
|
||||
+ * u64_stats_fetch_retry. But first, make sure our ring is
|
||||
* non-null before attempting to access its syncp.
|
||||
*/
|
||||
#ifdef HAVE_NDO_GET_STATS64
|
||||
do {
|
||||
- start = !ring ? 0 : u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
+ start = !ring ? 0 : u64_stats_fetch_begin(&ring->syncp);
|
||||
#endif
|
||||
for (i = 0; i < size; i++) {
|
||||
iavf_add_one_ethtool_stat(&(*data)[i], ring,
|
||||
&stats[i]);
|
||||
}
|
||||
#ifdef HAVE_NDO_GET_STATS64
|
||||
- } while (ring && u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
+ } while (ring && u64_stats_fetch_retry(&ring->syncp, start));
|
||||
#endif
|
||||
|
||||
/* Once we successfully copy the stats in, update the data pointer */
|
||||
--
|
||||
2.33.0
|
||||
|
||||
58
backport-iavf-flow_dissector-use-64bits-for-used_keys.patch
Normal file
58
backport-iavf-flow_dissector-use-64bits-for-used_keys.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From 2b3082c6ef3b0104d822f6f18d2afbe5fc9a5c2c Mon Sep 17 00:00:00 2001
|
||||
From: Ratheesh Kannoth <rkannoth@marvell.com>
|
||||
Date: Sat, 29 Jul 2023 04:52:15 +0530
|
||||
Subject: [PATCH] net: flow_dissector: Use 64bits for used_keys
|
||||
|
||||
As 32bits of dissector->used_keys are exhausted,
|
||||
increase the size to 64bits.
|
||||
|
||||
This is base change for ESP/AH flow dissector patch.
|
||||
Please find patch and discussions at
|
||||
https://lore.kernel.org/netdev/ZMDNjD46BvZ5zp5I@corigine.com/T/#t
|
||||
|
||||
Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
|
||||
Reviewed-by: Petr Machata <petrm@nvidia.com> # for mlxsw
|
||||
Tested-by: Petr Machata <petrm@nvidia.com>
|
||||
Reviewed-by: Martin Habets <habetsm.xilinx@gmail.com>
|
||||
Reviewed-by: Simon Horman <simon.horman@corigine.com>
|
||||
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
---
|
||||
src/iavf_main.c | 18 +++++++++---------
|
||||
1 file changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/iavf_main.c b/src/iavf_main.c
|
||||
index e475564..9b70c2e 100644
|
||||
--- a/src/iavf_main.c
|
||||
+++ b/src/iavf_main.c
|
||||
@@ -4073,17 +4073,17 @@ static int iavf_parse_cls_flower(struct iavf_adapter *adapter,
|
||||
int i = 0;
|
||||
|
||||
if (dissector->used_keys &
|
||||
- ~(BIT(FLOW_DISSECTOR_KEY_CONTROL) |
|
||||
- BIT(FLOW_DISSECTOR_KEY_BASIC) |
|
||||
- BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
|
||||
- BIT(FLOW_DISSECTOR_KEY_VLAN) |
|
||||
- BIT(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
|
||||
- BIT(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
|
||||
+ ~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |
|
||||
+ BIT_ULL(FLOW_DISSECTOR_KEY_BASIC) |
|
||||
+ BIT_ULL(FLOW_DISSECTOR_KEY_ETH_ADDRS) |
|
||||
+ BIT_ULL(FLOW_DISSECTOR_KEY_VLAN) |
|
||||
+ BIT_ULL(FLOW_DISSECTOR_KEY_IPV4_ADDRS) |
|
||||
+ BIT_ULL(FLOW_DISSECTOR_KEY_IPV6_ADDRS) |
|
||||
#ifdef HAVE_TC_FLOWER_ENC
|
||||
- BIT(FLOW_DISSECTOR_KEY_ENC_KEYID) |
|
||||
+ BIT_ULL(FLOW_DISSECTOR_KEY_ENC_KEYID) |
|
||||
#endif /* HAVE_TC_FLOWER_ENC */
|
||||
- BIT(FLOW_DISSECTOR_KEY_PORTS))) {
|
||||
- dev_err(&adapter->pdev->dev, "Unsupported key used: 0x%x\n",
|
||||
+ BIT_ULL(FLOW_DISSECTOR_KEY_PORTS))) {
|
||||
+ dev_err(&adapter->pdev->dev, "Unsupported key used: 0x%llx\n",
|
||||
dissector->used_keys);
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
--
|
||||
2.41.0
|
||||
|
||||
@ -0,0 +1,50 @@
|
||||
From bc4fddc3b306b204c5af664656ae62a1f23e2aab Mon Sep 17 00:00:00 2001
|
||||
From: Bjorn Helgaas <bhelgaas@google.com>
|
||||
Date: Wed, 18 Jan 2023 17:46:08 -0600
|
||||
Subject: [PATCH] iavf: Remove redundant pci_enable_pcie_error_reporting()
|
||||
|
||||
pci_enable_pcie_error_reporting() enables the device to send ERR_*
|
||||
Messages. Since f26e58bf6f54 ("PCI/AER: Enable error reporting when AER is
|
||||
native"), the PCI core does this for all devices during enumeration.
|
||||
|
||||
Remove the redundant pci_enable_pcie_error_reporting() call from the
|
||||
driver. Also remove the corresponding pci_disable_pcie_error_reporting()
|
||||
from the driver .remove() path.
|
||||
|
||||
Note that this doesn't control interrupt generation by the Root Port; that
|
||||
is controlled by the AER Root Error Command register, which is managed by
|
||||
the AER service driver.
|
||||
|
||||
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
|
||||
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
|
||||
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
|
||||
Cc: intel-wired-lan@lists.osuosl.org
|
||||
Cc: netdev@vger.kernel.org
|
||||
Tested-by: Marek Szlosek <marek.szlosek@intel.com>
|
||||
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
|
||||
---
|
||||
src/iavf_main.c | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/src/iavf_main.c b/src/iavf_main.c
|
||||
index 2c4480b20db3a5..3273aeb8fa6763 100644
|
||||
--- a/src/iavf_main.c
|
||||
+++ b/src/iavf_main.c
|
||||
@@ -4868,8 +4868,6 @@ static int iavf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
goto err_pci_reg;
|
||||
}
|
||||
|
||||
- pci_enable_pcie_error_reporting(pdev);
|
||||
-
|
||||
pci_set_master(pdev);
|
||||
|
||||
netdev = alloc_etherdev_mq(sizeof(struct iavf_adapter),
|
||||
@@ -5175,8 +5172,6 @@ static void iavf_remove(struct pci_dev *pdev)
|
||||
|
||||
free_netdev(netdev);
|
||||
|
||||
- pci_disable_pcie_error_reporting(pdev);
|
||||
-
|
||||
pci_disable_device(pdev);
|
||||
}
|
||||
|
||||
@ -1,37 +0,0 @@
|
||||
From f72271e2a0ae4277d53c4053f5eed8bb346ba38a Mon Sep 17 00:00:00 2001
|
||||
From: Brian King <brking@linux.vnet.ibm.com>
|
||||
Date: Fri, 17 Nov 2017 11:05:49 -0600
|
||||
Subject: i40evf: Use smp_rmb rather than read_barrier_depends
|
||||
|
||||
The original issue being fixed in this patch was seen with the ixgbe
|
||||
driver, but the same issue exists with i40evf as well, as the code is
|
||||
very similar. read_barrier_depends is not sufficient to ensure
|
||||
loads following it are not speculatively loaded out of order
|
||||
by the CPU, which can result in stale data being loaded, causing
|
||||
potential system crashes.
|
||||
|
||||
Cc: stable <stable@vger.kernel.org>
|
||||
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
|
||||
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
|
||||
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
|
||||
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
|
||||
---
|
||||
drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/iavf_txrx.c b/src/iavf_txrx.c
|
||||
index 03c685c..da3cfed 100644
|
||||
--- a/src/iavf_txrx.c
|
||||
+++ b/src/iavf_txrx.c
|
||||
@@ -289,7 +289,7 @@ static bool iavf_clean_tx_irq(struct iavf_vsi *vsi,
|
||||
break;
|
||||
|
||||
/* prevent any other reads prior to eop_desc */
|
||||
- read_barrier_depends();
|
||||
+ smp_rmb();
|
||||
|
||||
iavf_trace(clean_tx_irq, tx_ring, tx_desc, tx_buf);
|
||||
/* if the descriptor isn't done, no work yet to do */
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
24
fix-build-error-with-Linux-6.6.patch
Normal file
24
fix-build-error-with-Linux-6.6.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 732efb48473a90af4194464a2bf00fcd35993371 Mon Sep 17 00:00:00 2001
|
||||
From: eaglegai <eaglegai@163.com>
|
||||
Date: Tue, 9 Jan 2024 06:33:35 +0000
|
||||
Subject: [PATCH] fix build error with Linux 6.6
|
||||
|
||||
---
|
||||
src/iavf.h | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/src/iavf.h b/src/iavf.h
|
||||
index 21b17fe..e7159d0 100644
|
||||
--- a/src/iavf.h
|
||||
+++ b/src/iavf.h
|
||||
@@ -39,6 +39,7 @@
|
||||
#include <net/tc_act/tc_gact.h>
|
||||
#include <net/tc_act/tc_mirred.h>
|
||||
#endif /* __TC_MQPRIO_MODE_MAX */
|
||||
+#include <net/xdp.h>
|
||||
|
||||
#include "kcompat.h"
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
||||
Binary file not shown.
BIN
iavf-4.7.0.tar.gz
Normal file
BIN
iavf-4.7.0.tar.gz
Normal file
Binary file not shown.
56
iavf.spec
56
iavf.spec
@ -8,19 +8,21 @@
|
||||
|
||||
Name: iavf
|
||||
Summary: Intel(R) Ethernet Adaptive Virtual Function Driver
|
||||
Version: 4.0.1
|
||||
Release: 6
|
||||
Version: 4.7.0
|
||||
Release: 3
|
||||
Vendor: Intel Corporation
|
||||
License: GPL-2.0
|
||||
URL: http://support.intel.com
|
||||
Source0: https://downloadcenter.intel.com/download/24693/Intel-Network-Adapter-Virtual-Function-Driver-for-Intel-40-Gigabit-Ethernet-Network-Connections/%{name}-%{version}.tar.gz
|
||||
Source0: https://downloadmirror.intel.com/762473/%{name}-%{version}.tar.gz
|
||||
|
||||
Requires: kernel, findutils, gawk, bash, hwdata
|
||||
|
||||
BuildRequires: kernel-devel hwdata uname-build-checks gcc
|
||||
|
||||
Patch0: fix-build-error-with-Linux-5.10.patch
|
||||
Patch1: backport-extend-coalesce-setting-uAPI-with-CQE-mode.patch
|
||||
Patch0: backport-fix-build-error-with-Linux-6.4.patch
|
||||
Patch1: backport-iavf-remove-redundant-pci_enable_pcie_error_reporting.patch
|
||||
Patch2: backport-iavf-flow_dissector-use-64bits-for-used_keys.patch
|
||||
Patch3: fix-build-error-with-Linux-6.6.patch
|
||||
|
||||
%description
|
||||
This package contains the Intel(R) Ethernet Adaptive Virtual Function Driver.
|
||||
@ -330,6 +332,11 @@ fi
|
||||
|
||||
uname -r | grep BOOT || /sbin/depmod -a > /dev/null 2>&1 || true
|
||||
|
||||
if [ -x "/usr/sbin/weak-modules" ]; then
|
||||
modules=( $(cat %{_docdir}/%{name}/file.list | grep '\.ko$' | xargs realpath) )
|
||||
printf '%s\n' "${modules[@]}" | /usr/sbin/weak-modules --no-initramfs --add-modules
|
||||
fi
|
||||
|
||||
if which dracut >/dev/null 2>&1; then
|
||||
echo "Updating initramfs with dracut..."
|
||||
if dracut --force ; then
|
||||
@ -355,11 +362,20 @@ else
|
||||
fi
|
||||
|
||||
%preun
|
||||
# save tmp list of installed kernel modules for weak-modules
|
||||
cat %{_docdir}/%{name}/file.list | grep '\.ko$' | xargs realpath > /var/run/rpm-%{name}-modules.list
|
||||
|
||||
rm -rf /usr/local/share/%{name}
|
||||
|
||||
%postun
|
||||
uname -r | grep BOOT || /sbin/depmod -a > /dev/null 2>&1 || true
|
||||
|
||||
if [ -x "/usr/sbin/weak-modules" ]; then
|
||||
modules=( $(cat /var/run/rpm-%{name}-modules.list) )
|
||||
printf '%s\n' "${modules[@]}" | /usr/sbin/weak-modules --no-initramfs --remove-modules
|
||||
fi
|
||||
rm /var/run/rpm-%{name}-modules.list
|
||||
|
||||
if which dracut >/dev/null 2>&1; then
|
||||
echo "Updating initramfs with dracut..."
|
||||
if dracut --force ; then
|
||||
@ -385,6 +401,36 @@ else
|
||||
fi
|
||||
|
||||
%changelog
|
||||
* Thu Jan 11 2024 yanglu <yanglu72@h-partners.com> - 4.7.0-3
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:fix build error beacuse of kernel api changes
|
||||
|
||||
* Tue Jul 18 2023 yanglu <yanglu72@h-partners.com> - 4.7.0-2
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:fix build error beacuse of kernel api changes
|
||||
|
||||
* Wed Feb 01 2023 yanglu <yanglu72@h-partners.com> - 4.7.0-1
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:Update iavf version to 4.7.0 to fix kernel-6.1 based build error
|
||||
|
||||
* Tue Dec 06 2022 xingwei <xingwei@h-partners.com> - 4.0.1-8
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:change download path of the source code
|
||||
|
||||
* Wed Jun 22 2022 gaihuiying <eaglegai@163.com> - 4.0.1-7
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:fix build error beacuse of kernel api changes
|
||||
|
||||
* Sat Apr 16 2022 gaihuiying <eaglegai@163.com> - 4.0.1-6
|
||||
- Type:bugfix
|
||||
- ID:NA
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user