summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2024-03-22 07:50:58 +0000
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2024-03-22 07:55:45 +0000
commitde05477c120bc9a845baad2c516ef4ed87f59ff1 (patch)
tree8d03e0882ebec71068417808c8f802c2fcd6e6a3
parent19039d6622f45dab5b85303ebb504d09e2ce07df (diff)
downloadvyos-build-de05477c120bc9a845baad2c516ef4ed87f59ff1.tar.gz
vyos-build-de05477c120bc9a845baad2c516ef4ed87f59ff1.zip
ixgbe: T6155: always enable allow_unsupported_sfp for all NICs by default
In-tree vs. Out-Of-Tree drivers differ in the way how unsupported transceivers are defined (uint vs array of int) for the Kernel module parameters. This results in: kernel: ixgbe 0000:5e:00.0: failed to initialize because an unsupported SFP+ module type was detected. kernel: ixgbe 0000:5e:00.0: Reload the driver after installing a supported module. kernel: ixgbe 0000:5e:00.0: removed PHC on eth6 This patch always enables unsupported SFP+ modules as wo do anyway from the userspace but only for the first port. (cherry picked from commit ea7d59a4bf64a854be04ccf7566e1cf95d4e09a8)
-rwxr-xr-xpackages/linux-kernel/build-intel-ixgbe.sh4
-rw-r--r--packages/linux-kernel/patches/ixgbe/allow_unsupported_sfp.patch36
2 files changed, 40 insertions, 0 deletions
diff --git a/packages/linux-kernel/build-intel-ixgbe.sh b/packages/linux-kernel/build-intel-ixgbe.sh
index 4f6d974b..36e403ad 100755
--- a/packages/linux-kernel/build-intel-ixgbe.sh
+++ b/packages/linux-kernel/build-intel-ixgbe.sh
@@ -57,6 +57,10 @@ echo "I: remove pci_enable_pcie_error_reporting() code no longer present in Kern
sed -i '/.*pci_disable_pcie_error_reporting(pdev);/d' ixgbe_main.c
sed -i '/.*pci_enable_pcie_error_reporting(pdev);/d' ixgbe_main.c
+# See https://vyos.dev/T6155
+echo "I: always enable allow_unsupported_sfp for all NICs by default"
+patch -l -p1 < ../../patches/ixgbe/allow_unsupported_sfp.patch
+
echo "I: Compile Kernel module for Intel ${DRIVER_NAME} driver"
make KSRC=${KERNEL_DIR} INSTALL_MOD_PATH=${DEBIAN_DIR} INSTALL_FW_PATH=${DEBIAN_DIR} -j $(getconf _NPROCESSORS_ONLN) install
diff --git a/packages/linux-kernel/patches/ixgbe/allow_unsupported_sfp.patch b/packages/linux-kernel/patches/ixgbe/allow_unsupported_sfp.patch
new file mode 100644
index 00000000..5e636320
--- /dev/null
+++ b/packages/linux-kernel/patches/ixgbe/allow_unsupported_sfp.patch
@@ -0,0 +1,36 @@
+From 7a95d34570377e46d5fdadb9b1c742db62e0256d Mon Sep 17 00:00:00 2001
+From: Christian Breunig <christian@breunig.cc>
+Date: Fri, 22 Mar 2024 08:37:54 +0100
+Subject: [PATCH] param: always enable allow_unsupported_sfp
+
+---
+ ixgbe_param.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/ixgbe_param.c b/ixgbe_param.c
+index 71197b7..30c21bd 100644
+--- a/ixgbe_param.c
++++ b/ixgbe_param.c
+@@ -307,7 +307,7 @@ IXGBE_PARAM(LRO, "Large Receive Offload (0,1), default 0 = off");
+ * Default Value: 0
+ */
+ IXGBE_PARAM(allow_unsupported_sfp, "Allow unsupported and untested "
+- "SFP+ modules on 82599 based adapters, default 0 = Disable");
++ "SFP+ modules on 82599 based adapters, default 1 = Enable");
+
+ /* Enable/disable support for DMA coalescing
+ *
+@@ -1133,8 +1133,8 @@ void ixgbe_check_options(struct ixgbe_adapter *adapter)
+ struct ixgbe_option opt = {
+ .type = enable_option,
+ .name = "allow_unsupported_sfp",
+- .err = "defaulting to Disabled",
+- .def = OPTION_DISABLED
++ .err = "defaulting to Enabled",
++ .def = OPTION_ENABLED
+ };
+ #ifdef module_param_array
+ if (num_allow_unsupported_sfp > bd) {
+--
+2.39.2
+