summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/live-build-config/includes.chroot/etc/modprobe.d/ixgbe-options.conf1
-rwxr-xr-xpackages/linux-kernel/build-intel-ixgbe.sh4
-rw-r--r--packages/linux-kernel/patches/ixgbe/allow_unsupported_sfp.patch48
3 files changed, 52 insertions, 1 deletions
diff --git a/data/live-build-config/includes.chroot/etc/modprobe.d/ixgbe-options.conf b/data/live-build-config/includes.chroot/etc/modprobe.d/ixgbe-options.conf
deleted file mode 100644
index 79b97aea..00000000
--- a/data/live-build-config/includes.chroot/etc/modprobe.d/ixgbe-options.conf
+++ /dev/null
@@ -1 +0,0 @@
-options ixgbe allow_unsupported_sfp=1
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..647fe4d5
--- /dev/null
+++ b/packages/linux-kernel/patches/ixgbe/allow_unsupported_sfp.patch
@@ -0,0 +1,48 @@
+From 4f6c1dc3c48a1b2fa7c06206e6366bcfaa33f3f7 Mon Sep 17 00:00:00 2001
+From: Christian Breunig <christian@breunig.cc>
+Date: Fri, 22 Mar 2024 11:33:27 +0000
+Subject: [PATCH] ixgbe: always enable support for unsupported SFP+ modules
+
+---
+ ixgbe_param.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/ixgbe_param.c b/ixgbe_param.c
+index 71197b7..dac33ca 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) {
+@@ -1150,7 +1150,11 @@ void ixgbe_check_options(struct ixgbe_adapter *adapter)
+ }
+ #ifdef module_param_array
+ } else {
++ if (opt.def == OPTION_ENABLED) {
++ adapter->hw.allow_unsupported_sfp = true;
++ } else {
+ adapter->hw.allow_unsupported_sfp = false;
++ }
+ }
+ #endif
+ }
+--
+2.39.2
+