pkgdep/git: Bump ICE and iRDMA drivers to latest available version

This is done in order to align our requirements with the 6.x kernel
that we already support under the CI (as part of the fedora37 build).

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I88ff07a0de49c0f9ff90caf54b2690c90ef108b9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16308
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Michal Berger 2023-01-16 16:55:13 +01:00 committed by Tomasz Zawadzki
parent 8b5545854b
commit 81fb0a4ee9
6 changed files with 82 additions and 100 deletions

View File

@ -429,7 +429,7 @@ function install_igb_uio() {
}
function install_irdma() {
local RDMA_CORE_VERSION=35.0
local RDMA_CORE_VERSION=42.0
local RDMA_CORE=https://github.com/linux-rdma/rdma-core/releases/download/v$RDMA_CORE_VERSION/rdma-core-$RDMA_CORE_VERSION.tar.gz
if [[ $ID != fedora ]]; then
@ -437,7 +437,7 @@ function install_irdma() {
return 0
fi
# Install extra dependencies needed by the rdma-core-35.0
# Install extra dependencies needed by the rdma-core
install ninja-build pandoc perl-generators valgrind-devel python-docutils libnl3 libnl3-devel python3-Cython
rm -rf "$GIT_REPOS/irdma-$IRDMA_VERSION"
@ -506,20 +506,13 @@ function install_ice() {
curl -L -o- "$ICE_DRIVER" | tar -C "$GIT_REPOS" -xzf -
if [[ $OSID == ubuntu && $OSVERSION == 18.04 ]]; then
if ge "$kernel_ver" 4.15.0-159; then
patch --dir="$GIT_REPOS/ice-$ICE_VERSION" -p1
fi < "$rootdir/test/common/config/pkgdep/patches/ice/0001-undef-skb-frag-off.patch"
if ge "$kernel_ver" 6.1.0; then
patch --dir="$GIT_REPOS/ice-$ICE_VERSION" -p1 \
< "$rootdir/test/common/config/pkgdep/patches/ice/0001-ktermios-const.patch"
patch --dir="$GIT_REPOS/ice-$ICE_VERSION" -p1 \
< "$rootdir/test/common/config/pkgdep/patches/ice/0001-netif-napi-weight.patch"
fi
if ge "$kernel_ver" 5.17.0; then
patch --dir="$GIT_REPOS/ice-$ICE_VERSION" -p1
fi < "$rootdir/test/common/config/pkgdep/patches/ice/0001-ringparam-incompatible-pointer-types.patch"
if ge "$kernel_ver" 5.19.0; then
patch --dir="$GIT_REPOS/ice-$ICE_VERSION" -p1
fi < "$rootdir/test/common/config/pkgdep/patches/ice/0001-ext-ack.patch"
(
cd "$GIT_REPOS/ice-$ICE_VERSION/src"
sudo make -j"$(nproc)" install
@ -608,8 +601,8 @@ function install_sources() {
}
GIT_VERSION=2.25.1
IRDMA_VERSION=1.7.72
ICE_VERSION=1.8.8
IRDMA_VERSION=1.11.16.6
ICE_VERSION=1.10.1.2.2
BPFTRACE_VERSION=${BPFTRACE_VERSION:-36414d9}
VFIO_QEMU_BRANCH=${VFIO_QEMU_BRANCH:-vfio-user-patch1-noreq}
@ -639,7 +632,7 @@ export DRIVER_LOCATION_QAT
export GIT_REPO_GIT
: ${GIT_REPO_DPDK_KMODS=http://dpdk.org/git/dpdk-kmods}
export GIT_REPO_DPDK_KMODS
: ${IRDMA_DRIVER=https://downloadmirror.intel.com/709709/irdma-$IRDMA_VERSION.tgz}
: ${IRDMA_DRIVER=https://downloadmirror.intel.com/763932/irdma-$IRDMA_VERSION.tgz}
export IRDMA_DRIVER
: ${ICE_DRIVER="https://sourceforge.net/projects/e1000/files/ice%20stable/$ICE_VERSION/ice-$ICE_VERSION.tar.gz"}
export ICE_DRIVER

View File

@ -1,23 +0,0 @@
This essentially duplicates a portion of the following patch that's already
available in the upstream version of the ice driver:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ca4567f1e6f66
---
src/ice_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ice_main.c b/src/ice_main.c
index ab5e57c..a81502f 100644
--- a/src/ice_main.c
+++ b/src/ice_main.c
@@ -6951,7 +6951,7 @@ ice_fdb_add(struct ndmsg *ndm, struct nlattr __always_unused *tb[],
static int
ice_fdb_del(struct ndmsg *ndm, __always_unused struct nlattr *tb[],
struct net_device *dev, const unsigned char *addr,
- __always_unused u16 vid)
+ __always_unused u16 vid, struct netlink_ext_ack *extack)
#else
static int
ice_fdb_del(struct ndmsg *ndm, __always_unused struct nlattr *tb[],
--

View File

@ -0,0 +1,21 @@
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a8c11c1520347
---
src/ice_gnss.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ice_gnss.c b/src/ice_gnss.c
index f38cbe8..4031f9a 100644
--- a/src/ice_gnss.c
+++ b/src/ice_gnss.c
@@ -414,7 +414,7 @@ static int ice_gnss_tty_write_room(struct tty_struct *tty)
* @new_termios: pointer to the new termios parameters
*/
static void
-ice_gnss_tty_set_termios(struct tty_struct *tty, struct ktermios *new_termios)
+ice_gnss_tty_set_termios(struct tty_struct *tty, const struct ktermios *new_termios)
{
/**
* Some 3rd party tools (ex. ubxtool) want to change the TTY parameters.
--

View File

@ -0,0 +1,51 @@
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b48b89f9c189d24eb5e2b4a0ac067da5a24ee86d
---
src/ice_base.c | 3 +--
src/ice_eswitch.c | 3 +--
src/ice_main.c | 2 +-
3 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/ice_base.c b/src/ice_base.c
index f3cd8dc..1d0115d 100644
--- a/src/ice_base.c
+++ b/src/ice_base.c
@@ -127,8 +127,7 @@ static int ice_vsi_alloc_q_vector(struct ice_vsi *vsi, u16 v_idx)
* handler here (i.e. resume, reset/rebuild, etc.)
*/
if (vsi->netdev)
- netif_napi_add(vsi->netdev, &q_vector->napi, ice_napi_poll,
- NAPI_POLL_WEIGHT);
+ netif_napi_add(vsi->netdev, &q_vector->napi, ice_napi_poll);
out:
/* tie q_vector and VSI together */
diff --git a/src/ice_eswitch.c b/src/ice_eswitch.c
index 06fce56..077804b 100644
--- a/src/ice_eswitch.c
+++ b/src/ice_eswitch.c
@@ -331,8 +331,7 @@ static int ice_eswitch_setup_reprs(struct ice_pf *pf)
if (max_vsi_num < vsi->vsi_num)
max_vsi_num = vsi->vsi_num;
- netif_napi_add(vf->repr->netdev, &vf->repr->q_vector->napi, ice_napi_poll,
- NAPI_POLL_WEIGHT);
+ netif_napi_add(vf->repr->netdev, &vf->repr->q_vector->napi, ice_napi_poll);
netif_keep_dst(vf->repr->netdev);
}
diff --git a/src/ice_main.c b/src/ice_main.c
index bc6e6fa..b805ef3 100644
--- a/src/ice_main.c
+++ b/src/ice_main.c
@@ -4391,7 +4391,7 @@ static void ice_napi_add(struct ice_vsi *vsi)
ice_for_each_q_vector(vsi, v_idx)
netif_napi_add(vsi->netdev, &vsi->q_vectors[v_idx]->napi,
- ice_napi_poll, NAPI_POLL_WEIGHT);
+ ice_napi_poll);
}
/**
--

View File

@ -1,31 +0,0 @@
Fix incompatible-pointer-types error raised due to changes in more recent kernels (5.17)
in ringparam API.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7462494408cd3de8b0bc1e79670bf213288501d0
---
src/ice_ethtool.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/ice_ethtool.c b/src/ice_ethtool.c
index f855968..d92f67b 100644
--- a/src/ice_ethtool.c
+++ b/src/ice_ethtool.c
@@ -4511,7 +4511,7 @@ ice_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd,
}
static void
-ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
+ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, struct kernel_ethtool_ringparam __maybe_unused *ker, struct netlink_ext_ack __maybe_unused *ext_ack)
{
struct ice_netdev_priv *np = netdev_priv(netdev);
struct ice_vsi *vsi = np->vsi;
@@ -4529,7 +4529,7 @@ ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
}
static int
-ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
+ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, struct kernel_ethtool_ringparam __maybe_unused *ker, struct netlink_ext_ack __maybe_unused *ext_ack)
{
struct ice_ring *tx_rings = NULL, *rx_rings = NULL;
struct ice_netdev_priv *np = netdev_priv(netdev);
--

View File

@ -1,29 +0,0 @@
Current versions of the ice driver redifine skb_frag_off*() on older kernels
(< 5.4.0). Unfortunately, ubuntu1804 kernel builds, 4.15, include this change
hence gcc complains with:
kcompat_impl.h:46:28: error: redefinition of skb_frag_off
This patch is meant to be used on a particular version of ubuntu to make sure
the driver can be built against the shipped kernel.
Details:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7240b60c98d6
---
src/kcompat_impl.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/kcompat_impl.h b/src/kcompat_impl.h
index 10d268c..715ce2a 100644
--- a/src/kcompat_impl.h
+++ b/src/kcompat_impl.h
@@ -42,6 +42,7 @@ static inline void net_prefetch(void *p)
* Implementing the wrappers directly for older kernels which still have the
* old implementation of skb_frag_t is trivial.
*/
+#undef NEED_SKB_FRAG_OFF_ACCESSORS
#ifdef NEED_SKB_FRAG_OFF_ACCESSORS
static inline unsigned int skb_frag_off(const skb_frag_t *frag)
{
--