diff --git a/package/qca/nss/qca-nss-clients-64/Makefile b/package/qca/nss/qca-nss-clients-64/Makefile index 741646ba8..153166872 100644 --- a/package/qca/nss/qca-nss-clients-64/Makefile +++ b/package/qca/nss/qca-nss-clients-64/Makefile @@ -17,7 +17,7 @@ define KernelPackage/qca-nss-drv-pppoe-64 CATEGORY:=Kernel modules SUBMENU:=Network Devices TITLE:=Kernel driver for NSS (connection manager) - PPPoE - DEPENDS:=@TARGET_ipq807x +kmod-qca-nss-drv-64 +kmod-ppp +kmod-pppoe + DEPENDS:=@(TARGET_ipq60xx||TARGET_ipq807x) +kmod-qca-nss-drv-64 +kmod-ppp +kmod-pppoe FILES:=$(PKG_BUILD_DIR)/pppoe/qca-nss-pppoe.ko AUTOLOAD:=$(call AutoLoad,51,qca-nss-pppoe) endef @@ -31,7 +31,7 @@ define KernelPackage/qca-nss-drv-bridge-mgr-64 CATEGORY:=Kernel modules SUBMENU:=Network Devices TITLE:=Kernel driver for NSS bridge manager - DEPENDS:=@LINUX_5_10 @TARGET_ipq807x +kmod-qca-nss-drv-64 +kmod-qca-nss-drv-vlan-mgr-64 + DEPENDS:=@(LINUX_5_10||LINUX_5_15) @(TARGET_ipq60xx||TARGET_ipq807x) +kmod-qca-nss-drv-64 +kmod-qca-nss-drv-vlan-mgr-64 FILES:=$(PKG_BUILD_DIR)/bridge/qca-nss-bridge-mgr.ko AUTOLOAD:=$(call AutoLoad,51,qca-nss-bridge-mgr) endef @@ -45,7 +45,7 @@ define KernelPackage/qca-nss-drv-vlan-mgr-64 CATEGORY:=Kernel modules SUBMENU:=Network Devices TITLE:=Kernel driver for NSS vlan manager - DEPENDS:=@LINUX_5_10 @TARGET_ipq807x +kmod-qca-nss-drv-64 + DEPENDS:=@(LINUX_5_10||LINUX_5_15) @(TARGET_ipq60xx||TARGET_ipq807x) +kmod-qca-nss-drv-64 FILES:=$(PKG_BUILD_DIR)/vlan/qca-nss-vlan.ko AUTOLOAD:=$(call AutoLoad,51,qca-nss-vlan) endef diff --git a/package/qca/nss/qca-nss-drv-64/patches/0005-nss-drv-add-support-for-kernel-5.15.patch b/package/qca/nss/qca-nss-drv-64/patches/0005-nss-drv-add-support-for-kernel-5.15.patch new file mode 100644 index 000000000..dfebd0d6f --- /dev/null +++ b/package/qca/nss/qca-nss-drv-64/patches/0005-nss-drv-add-support-for-kernel-5.15.patch @@ -0,0 +1,73 @@ +From 6e65f6daecb09463688eaea0a234018a728196b8 Mon Sep 17 00:00:00 2001 +From: Ansuel Smith +Date: Tue, 5 Apr 2022 18:10:57 +0200 +Subject: [PATCH 5/8] nss-drv: add support for kernel 5.15 + +- Fix coredump panic notifier include change. +- Fix skb ZEROCOPY flag. +- Add skb reuse support for 5.15 kernel version. + +Signed-off-by: Ansuel Smith +--- + nss_core.c | 5 +++-- + nss_coredump.c | 4 ++++ + nss_hal/nss_hal.c | 1 + + 3 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/nss_core.c b/nss_core.c +index f9e6014..8cd1d4b 100644 +--- a/nss_core.c ++++ b/nss_core.c +@@ -53,7 +53,8 @@ + (((LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)))) || \ + (((LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)))) || \ + (((LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 0)))) || \ +-(((LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(5, 11, 0)))))) ++(((LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(5, 11, 0)))) || \ ++(((LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0)))))) + #error "Check skb recycle code in this file to match Linux version" + #endif + +@@ -2623,7 +2624,11 @@ static inline bool nss_core_skb_can_reuse(struct nss_ctx_instance *nss_ctx, + if (unlikely(irqs_disabled())) + return false; + ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 14, 0)) + if (unlikely(skb_shinfo(nbuf)->tx_flags & SKBTX_DEV_ZEROCOPY)) ++#else ++ if (unlikely(skb_shinfo(nbuf)->flags & SKBFL_ZEROCOPY_ENABLE)) ++#endif + return false; + + if (unlikely(skb_is_nonlinear(nbuf))) +diff --git a/nss_coredump.c b/nss_coredump.c +index ecad659..3ecef7e 100644 +--- a/nss_coredump.c ++++ b/nss_coredump.c +@@ -23,7 +23,11 @@ + #include "nss_hal.h" + #include "nss_log.h" + #include ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 14, 0)) + #include /* for panic_notifier_list */ ++#else ++#include ++#endif + #include /* for time */ + #include "nss_tx_rx_common.h" + +diff --git a/nss_hal/nss_hal.c b/nss_hal/nss_hal.c +index 57974c1..d8c703b 100644 +--- a/nss_hal/nss_hal.c ++++ b/nss_hal/nss_hal.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include "nss_hal.h" + #include "nss_arch.h" +-- +2.34.1 + diff --git a/package/qca/nss/qca-nss-drv-64/patches/0005-nss-drv-use-standard-skb_skip_tc_classify-instead-of.patch b/package/qca/nss/qca-nss-drv-64/patches/0005-nss-drv-use-standard-skb_skip_tc_classify-instead-of.patch new file mode 100644 index 000000000..73c923d3d --- /dev/null +++ b/package/qca/nss/qca-nss-drv-64/patches/0005-nss-drv-use-standard-skb_skip_tc_classify-instead-of.patch @@ -0,0 +1,29 @@ +From 4dd701916186803172a9f35e7e982a953613ad55 Mon Sep 17 00:00:00 2001 +From: Ansuel Smith +Date: Mon, 11 Apr 2022 21:32:41 +0200 +Subject: [PATCH 5/9] nss-drv: use standard skb_skip_tc_classify instead of + custom api + +Use skb_skip_tc_classify to skip classify for packet handled by nss +instead of custom api. + +Signed-off-by: Ansuel Smith +--- + nss_core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/nss_core.c b/nss_core.c +index f9e6014..6ab8038 100644 +--- a/nss_core.c ++++ b/nss_core.c +@@ -1075,7 +1075,7 @@ static inline void nss_core_set_skb_classify(struct sk_buff *nbuf) + #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)) + nbuf->tc_verd = SET_TC_NCLS_NSS(nbuf->tc_verd); + #else +- skb_set_tc_classify_offload(nbuf); ++ skb_skip_tc_classify(nbuf); + #endif + #endif + } +-- +2.34.1 diff --git a/package/qca/nss/qca-nss-drv-64/patches/999-treewide-hack-support-for-mismatched-firmware.patch b/package/qca/nss/qca-nss-drv-64/patches/0999-treewide-hack-support-for-mismatched-firmware.patch similarity index 100% rename from package/qca/nss/qca-nss-drv-64/patches/999-treewide-hack-support-for-mismatched-firmware.patch rename to package/qca/nss/qca-nss-drv-64/patches/0999-treewide-hack-support-for-mismatched-firmware.patch diff --git a/package/qca/qca-ssdk/Makefile b/package/qca/qca-ssdk/Makefile index 3a68a50a2..487117bb6 100644 --- a/package/qca/qca-ssdk/Makefile +++ b/package/qca/qca-ssdk/Makefile @@ -26,7 +26,7 @@ endef define KernelPackage/qca-ssdk-nohnat $(call KernelPackage/qca-ssdk/default-nohnat) - DEPENDS:=@(TARGET_ipq806x||TARGET_ipq807x) + DEPENDS:=@(TARGET_ipq806x||TARGET_ipq807x||TARGET_ipq60xx) VARIANT:=nohnat endef diff --git a/target/linux/ipq60xx/Makefile b/target/linux/ipq60xx/Makefile index 42e2737e8..35543f394 100644 --- a/target/linux/ipq60xx/Makefile +++ b/target/linux/ipq60xx/Makefile @@ -15,6 +15,6 @@ DEFAULT_PACKAGES += \ kmod-usb3 kmod-usb-dwc3 kmod-usb-dwc3-qcom \ kmod-leds-gpio kmod-gpio-button-hotplug \ kmod-ath11k-ahb wpad-openssl uboot-envtools \ - kmod-qca-nss-dp nss-firmware-ipq6018 - + kmod-qca-nss-dp kmod-qca-nss-drv-64 kmod-qca-nss-drv-pppoe-64 nss-firmware-ipq6018 + $(eval $(call BuildTarget))