kernel/kernel-modules/intel-ice/files/0001-ice_main-ice_lib-Use-irq_update_affinity_hint.patch
Jiping Ma fcec7cba9b CentOS: Upgrade ice, i40e, iavf drivers to bundle 27.1
This upgrades the intel driver versions to the ones listed
in Intel driver bundle 27.1. The list can be found here:
https://downloadmirror.intel.com/727294/Release_Notes_27.1.pdf
Also upgrades the ddp firmware to ice_comms-1.3.35.0 from
ice_comm-1.3.31.0.

0001-ice_xsk-Avoid-dependency-on-napi_busy_loop-with-PREE.patch
has been dropped because the fix had been integrated to the
driver ice-1.8.3.

The new versions are:
ice-1.8.3
i40e-2.18.9
iavf-4.2.2

Reason:
Update ICE driver to support the Intel Logan Beach NIC (E810-CQDA2T),
and that dictates the upgrade of the iavf driver which in turn
dictates the upgrade of the i40e driver. We select the versions
listed in official Intel driver bundle 27.1 to keep the driver
versions compatible with each other. The ice_comm ddp firmware
upgrade to version 1.3.35.0 is also dictated by the bundle.

Verification:
- installs from iso succeed on servers with ice(Intel Ethernet
  Controller E810) and i40e hw(Intel Ethernet Controller X710)
- interfaces are up and pass packets
- create vfs, ensure that they are picked up by the new iavf
  driver and that the interface can come up and pass packets
- Check dmesg to see DDP package is loaded successfully and
  the version is 1.3.35.0.

Note that we do not test it on Intel Logan Beach NIC, because
the network adapter is not available in our lab yet. We will test it
once Intel Logan Beach NIC is ready.

Story: 2009952
Task: 44895
Depends-On: https://review.opendev.org/c/starlingx/tools/+/836728

Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
Change-Id: I93dcf00fe443c4f86db2f8a65e159f9da05acc29
2022-04-07 21:23:27 -04:00

73 lines
2.9 KiB
Diff

From 722c51d207ea30388dfc63cec635e1d3e7d9d681 Mon Sep 17 00:00:00 2001
From: "M. Vefa Bicakci" <vefa.bicakci@windriver.com>
Date: Fri, 14 Jan 2022 17:50:39 -0500
Subject: [PATCH] ice_main, ice_lib: Use irq_update_affinity_hint
This commit makes the ice device driver use the irq_update_affinity_hint
function instead of the irq_set_affinity_hint function. This is done
because the latter function sets the IRQ CPU affinities, whereas the
former does not, and this allows the use of the default IRQ affinity CPU
mask provided via the irqaffinity= kernel command line option.
Please note that this patch was not cherry-picked from an upstream
commit. The changes have been inspired by the i40e and iavf device
driver patches in the following patch series:
https://lore.kernel.org/netdev/20210903152430.244937-1-nitesh@redhat.com/t/#u
The aforementioned patches have been mainlined as of this writing with
the following merge commit by Linus Torvalds:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=147cc5838c0f5c76e908b816e924ca378e0d4735
And the i40e and iavf patches are accessible at:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d34c54d1739c2cdf2e4437b74e6da269147f4987
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0f9744f4ed539f2e847d7ed41993b243e3ba5cff
Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>
[jm: Adapted the patch for context changes.]
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
---
src/ice_lib.c | 2 +-
src/ice_main.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/ice_lib.c b/src/ice_lib.c
index 034a064..313273f 100644
--- a/src/ice_lib.c
+++ b/src/ice_lib.c
@@ -2900,7 +2900,7 @@ void ice_vsi_free_irq(struct ice_vsi *vsi)
irq_set_affinity_notifier(irq_num, NULL);
/* clear the affinity_mask in the IRQ descriptor */
- irq_set_affinity_hint(irq_num, NULL);
+ irq_update_affinity_hint(irq_num, NULL);
synchronize_irq(irq_num);
devm_free_irq(ice_pf_to_dev(pf), irq_num, vsi->q_vectors[i]);
}
diff --git a/src/ice_main.c b/src/ice_main.c
index e00d7f8..ca761bd 100644
--- a/src/ice_main.c
+++ b/src/ice_main.c
@@ -3417,8 +3417,8 @@ static int ice_vsi_req_irq_msix(struct ice_vsi *vsi, char *basename)
irq_set_affinity_notifier(irq_num, affinity_notify);
}
- /* assign the mask for this irq */
- irq_set_affinity_hint(irq_num, &q_vector->affinity_mask);
+ /* assign the affinity hint for this irq */
+ irq_update_affinity_hint(irq_num, &q_vector->affinity_mask);
}
vsi->irqs_ready = true;
@@ -3430,7 +3430,7 @@ free_q_irqs:
irq_num = ice_get_irq_num(pf, base + vector);
if (!IS_ENABLED(CONFIG_RFS_ACCEL))
irq_set_affinity_notifier(irq_num, NULL);
- irq_set_affinity_hint(irq_num, NULL);
+ irq_update_affinity_hint(irq_num, NULL);
devm_free_irq(dev, irq_num, &vsi->q_vectors[vector]);
}
return err;
--
2.31.1