Commit 92b7734c authored by Michal Berger's avatar Michal Berger Committed by Konrad Sztyber
Browse files

pkgdep/git: Patch ICE driver to address changes in latest 6.10 kernels



Spotted under fedora40.

Just a side note: unfortunately, latest version of the ICE oot
driver doesn't include these changes so bumping it up won't
help.

Change-Id: I39042e9544d4fc3c38162f4a6cb8515d6c685353
Signed-off-by: default avatarMichal Berger <michal.berger@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24551


Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent 1073b6b1
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -386,6 +386,17 @@ function install_ice() {

	curl -L -o- "$ICE_DRIVER" | tar -C "$GIT_REPOS" -xzf -

	if ge "$kernel_ver" 6.10; then
		patch --dir="$GIT_REPOS/ice-$ICE_VERSION" -p1  \
			< "$rootdir/test/common/config/pkgdep/patches/ice/0001-__assign_str.patch"
		patch --dir="$GIT_REPOS/ice-$ICE_VERSION" -p1  \
			< "$rootdir/test/common/config/pkgdep/patches/ice/0001-napi_alloc_skb.patch"
		patch --dir="$GIT_REPOS/ice-$ICE_VERSION" -p1  \
			< "$rootdir/test/common/config/pkgdep/patches/ice/0001-devlink_param.patch"
		patch --dir="$GIT_REPOS/ice-$ICE_VERSION" -p1  \
			< "$rootdir/test/common/config/pkgdep/patches/ice/0001-xsk_buff_dma.patch"
	fi

	(
		cd "$GIT_REPOS/ice-$ICE_VERSION/src"
		sudo make -j"$(nproc)" install
+86 −0
Original line number Diff line number Diff line
See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2c92ca849f
---
 src/ice_trace.h | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/src/ice_trace.h b/src/ice_trace.h
index 839647a..fe3d414 100644
--- a/src/ice_trace.h
+++ b/src/ice_trace.h
@@ -88,7 +88,7 @@ DECLARE_EVENT_CLASS(ice_print_msg,
 
 		    TP_STRUCT__entry(__string(msg, msg)),
 
-		    TP_fast_assign(__assign_str(msg, msg);),
+		    TP_fast_assign(__assign_str(msg);),
 
 		    TP_printk("%s", __get_str(msg))
 );
@@ -117,7 +117,7 @@ DECLARE_EVENT_CLASS(ice_rx_dim_template,
 
 		    TP_fast_assign(__entry->q_vector = q_vector;
 				   __entry->dim = dim;
-				   __assign_str(devname, q_vector->rx.rx_ring->netdev->name);),
+				   __assign_str(devname);),
 
 		    TP_printk("netdev: %s Rx-Q: %d dim-state: %d dim-profile: %d dim-tune: %d dim-st-right: %d dim-st-left: %d dim-tired: %d",
 			      __get_str(devname),
@@ -144,7 +144,7 @@ DECLARE_EVENT_CLASS(ice_tx_dim_template,
 
 		    TP_fast_assign(__entry->q_vector = q_vector;
 				   __entry->dim = dim;
-				   __assign_str(devname, q_vector->tx.tx_ring->netdev->name);),
+				   __assign_str(devname);),
 
 		    TP_printk("netdev: %s Tx-Q: %d dim-state: %d dim-profile: %d dim-tune: %d dim-st-right: %d dim-st-left: %d dim-tired: %d",
 			      __get_str(devname),
@@ -176,7 +176,7 @@ DECLARE_EVENT_CLASS(ice_tx_template,
 		    TP_fast_assign(__entry->ring = ring;
 				   __entry->desc = desc;
 				   __entry->buf = buf;
-				   __assign_str(devname, ring->netdev->name);),
+				   __assign_str(devname);),
 
 		    TP_printk("netdev: %s ring: %p desc: %p buf %p", __get_str(devname),
 			      __entry->ring, __entry->desc, __entry->buf)
@@ -204,7 +204,7 @@ DECLARE_EVENT_CLASS(ice_rx_template,
 
 		    TP_fast_assign(__entry->ring = ring;
 				   __entry->desc = desc;
-				   __assign_str(devname, ring->netdev->name);),
+				   __assign_str(devname);),
 
 		    TP_printk("netdev: %s ring: %p desc: %p", __get_str(devname),
 			      __entry->ring, __entry->desc)
@@ -228,7 +228,7 @@ DECLARE_EVENT_CLASS(ice_rx_indicate_template,
 		    TP_fast_assign(__entry->ring = ring;
 				   __entry->desc = desc;
 				   __entry->skb = skb;
-				   __assign_str(devname, ring->netdev->name);),
+				   __assign_str(devname);),
 
 		    TP_printk("netdev: %s ring: %p desc: %p skb %p", __get_str(devname),
 			      __entry->ring, __entry->desc, __entry->skb)
@@ -251,7 +251,7 @@ DECLARE_EVENT_CLASS(ice_xmit_template,
 
 		    TP_fast_assign(__entry->ring = ring;
 				   __entry->skb = skb;
-				   __assign_str(devname, ring->netdev->name);),
+				   __assign_str(devname);),
 
 		    TP_printk("netdev: %s skb: %p ring: %p", __get_str(devname),
 			      __entry->skb, __entry->ring)
@@ -285,9 +285,8 @@ DECLARE_EVENT_CLASS(ice_tx_tstamp_template,
 				     __field(u8, calibrating)),
 
 		    TP_fast_assign(lockdep_assert_held(&tx->lock);
-				   __assign_str(dev_name, dev_name(dev));
-				   __assign_str(netdev_name,
-						netdev_name(skb->dev));
+				   __assign_str(dev_name);
+				   __assign_str(netdev_name);
 				   __entry->skb = skb;
 				   __entry->seq = ice_ptp_get_seq_id(skb);
 				   __entry->idx = idx;
-- 
+65 −0
Original line number Diff line number Diff line
See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5625ca5640
---
 src/ice_devlink.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/ice_devlink.c b/src/ice_devlink.c
index 623000e..a7fbe26 100644
--- a/src/ice_devlink.c
+++ b/src/ice_devlink.c
@@ -502,7 +502,7 @@ ice_devlink_minsrev_get(struct devlink *devlink, u32 id, struct devlink_param_gs
  * Returns: zero on success, or an error code on failure.
  */
 static int
-ice_devlink_minsrev_set(struct devlink *devlink, u32 id, struct devlink_param_gset_ctx *ctx)
+ice_devlink_minsrev_set(struct devlink *devlink, u32 id, struct devlink_param_gset_ctx *ctx, struct netlink_ext_ack *extack)
 {
 	struct ice_pf *pf = devlink_priv(devlink);
 	struct device *dev = ice_pf_to_dev(pf);
@@ -723,7 +723,7 @@ static int ice_devlink_txbalance_get(struct devlink *devlink, u32 id,
  * Returns zero on success and negative value on failure.
  */
 static int ice_devlink_txbalance_set(struct devlink *devlink, u32 id,
-				     struct devlink_param_gset_ctx *ctx)
+				     struct devlink_param_gset_ctx *ctx, struct netlink_ext_ack *extack)
 {
 	struct ice_pf *pf = devlink_priv(devlink);
 	struct device *dev = ice_pf_to_dev(pf);
@@ -838,7 +838,7 @@ static int ice_devlink_loopback_get(struct devlink *devlink, u32 id,
  * Returns zero on success.
  */
 static int ice_devlink_loopback_set(struct devlink *devlink, u32 id,
-				    struct devlink_param_gset_ctx *ctx)
+				    struct devlink_param_gset_ctx *ctx, struct netlink_ext_ack *extack)
 {
 	int new_loopback_mode = ice_devlink_loopback_str_to_mode(ctx->val.vstr);
 	struct ice_pf *pf = devlink_priv(devlink);
@@ -2957,7 +2957,7 @@ ice_devlink_tc_inline_fd_validate(struct devlink *devlink, u32 id,
  */
 static int
 ice_devlink_tc_inline_fd_set(struct devlink *devlink, u32 id,
-			     struct devlink_param_gset_ctx *ctx)
+			     struct devlink_param_gset_ctx *ctx, struct netlink_ext_ack *extack)
 {
 	struct ice_pf *pf = devlink_priv(devlink);
 	struct ice_vsi *vsi = pf->vsi[0];
@@ -3047,7 +3047,7 @@ ice_devlink_tc_qps_per_poller_validate(struct devlink *devlink, u32 id,
  */
 static int
 ice_devlink_tc_qps_per_poller_set(struct devlink *devlink, u32 id,
-				  struct devlink_param_gset_ctx *ctx)
+				  struct devlink_param_gset_ctx *ctx, struct netlink_ext_ack *extack)
 {
 	struct ice_pf *pf = devlink_priv(devlink);
 	struct ice_vsi *ch_vsi;
@@ -3135,7 +3135,7 @@ ice_devlink_tc_poller_timeout_validate(struct devlink *devlink, u32 id,
  */
 static int
 ice_devlink_tc_poller_timeout_set(struct devlink *devlink, u32 id,
-				  struct devlink_param_gset_ctx *ctx)
+				  struct devlink_param_gset_ctx *ctx, struct netlink_ext_ack *extack)
 {
 	struct ice_pf *pf = devlink_priv(devlink);
 	struct ice_vsi *ch_vsi;
-- 
+48 −0
Original line number Diff line number Diff line
See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e9b01909a
---
 src/ice_txrx.c | 8 +++-----
 src/ice_xsk.c  | 3 +--
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/ice_txrx.c b/src/ice_txrx.c
index 5fb23d2..d641628 100644
--- a/src/ice_txrx.c
+++ b/src/ice_txrx.c
@@ -623,9 +623,8 @@ ice_alloc_mapped_skb(struct ice_rx_ring *rx_ring, struct ice_rx_buf *bi)
 		skb = __netdev_alloc_skb(rx_ring->netdev, rx_ring->rx_buf_len,
 					 GFP_ATOMIC | __GFP_NOWARN);
 	else
-		skb = __napi_alloc_skb(&rx_ring->q_vector->napi,
-				       rx_ring->rx_buf_len,
-				       GFP_ATOMIC | __GFP_NOWARN);
+		skb = napi_alloc_skb(&rx_ring->q_vector->napi,
+				       rx_ring->rx_buf_len);
 	if (unlikely(!skb)) {
 		rx_ring->ring_stats->rx_stats.alloc_buf_failed++;
 		preempt_enable();
@@ -1328,8 +1327,7 @@ ice_construct_skb(struct ice_rx_ring *rx_ring, struct ice_rx_buf *rx_buf,
 	net_prefetch(xdp->data);
 
 	/* allocate a skb to store the frags */
-	skb = __napi_alloc_skb(&rx_ring->q_vector->napi, ICE_RX_HDR_SIZE,
-			       GFP_ATOMIC | __GFP_NOWARN);
+	skb = napi_alloc_skb(&rx_ring->q_vector->napi, ICE_RX_HDR_SIZE);
 	if (unlikely(!skb))
 		return NULL;
 
diff --git a/src/ice_xsk.c b/src/ice_xsk.c
index 54a2472..56b6280 100644
--- a/src/ice_xsk.c
+++ b/src/ice_xsk.c
@@ -1026,8 +1026,7 @@ ice_construct_skb_zc(struct ice_rx_ring *rx_ring, struct ice_rx_buf *rx_buf,
 				     xdp->data_hard_start;
 	struct sk_buff *skb;
 
-	skb = __napi_alloc_skb(&rx_ring->q_vector->napi, datasize_hard,
-			       GFP_ATOMIC | __GFP_NOWARN);
+	skb = napi_alloc_skb(&rx_ring->q_vector->napi, datasize_hard);
 	if (unlikely(!skb))
 		return NULL;
 
-- 
+29 −0
Original line number Diff line number Diff line
See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=163943ac00
---
 src/ice_xsk.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/ice_xsk.c b/src/ice_xsk.c
index 56b6280..40244e7 100644
--- a/src/ice_xsk.c
+++ b/src/ice_xsk.c
@@ -1182,7 +1182,7 @@ int ice_clean_rx_irq_zc(struct ice_rx_ring *rx_ring, int budget)
 		if (!rx_buf->xdp)
 			break;
 		rx_buf->xdp->data_end = (u8 *)rx_buf->xdp->data + size;
-		xsk_buff_dma_sync_for_cpu(rx_buf->xdp, rx_ring->xsk_pool);
+		xsk_buff_dma_sync_for_cpu(rx_buf->xdp);
 
 		xdp_res = ice_run_xdp_zc(rx_ring, rx_buf->xdp);
 #else
@@ -1190,7 +1190,7 @@ int ice_clean_rx_irq_zc(struct ice_rx_ring *rx_ring, int budget)
 		if (!xdp)
 			break;
 		xsk_buff_set_size(xdp, size);
-		xsk_buff_dma_sync_for_cpu(xdp, rx_ring->xsk_pool);
+		xsk_buff_dma_sync_for_cpu(xdp);
 
 		xdp_res = ice_run_xdp_zc(rx_ring, xdp);
 #endif /* HAVE_XSK_BATCHED_RX_ALLOC */
--