qca-nss-drv-64: revert to QSDK 11.4

This commit is contained in:
lean 2022-09-13 21:31:21 +08:00
parent 64099b947a
commit 30c3448606
6 changed files with 108 additions and 6 deletions

View File

@ -17,7 +17,7 @@ define KernelPackage/qca-nss-drv-pppoe-64
CATEGORY:=Kernel modules CATEGORY:=Kernel modules
SUBMENU:=Network Devices SUBMENU:=Network Devices
TITLE:=Kernel driver for NSS (connection manager) - PPPoE 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 FILES:=$(PKG_BUILD_DIR)/pppoe/qca-nss-pppoe.ko
AUTOLOAD:=$(call AutoLoad,51,qca-nss-pppoe) AUTOLOAD:=$(call AutoLoad,51,qca-nss-pppoe)
endef endef
@ -31,7 +31,7 @@ define KernelPackage/qca-nss-drv-bridge-mgr-64
CATEGORY:=Kernel modules CATEGORY:=Kernel modules
SUBMENU:=Network Devices SUBMENU:=Network Devices
TITLE:=Kernel driver for NSS bridge manager 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 FILES:=$(PKG_BUILD_DIR)/bridge/qca-nss-bridge-mgr.ko
AUTOLOAD:=$(call AutoLoad,51,qca-nss-bridge-mgr) AUTOLOAD:=$(call AutoLoad,51,qca-nss-bridge-mgr)
endef endef
@ -45,7 +45,7 @@ define KernelPackage/qca-nss-drv-vlan-mgr-64
CATEGORY:=Kernel modules CATEGORY:=Kernel modules
SUBMENU:=Network Devices SUBMENU:=Network Devices
TITLE:=Kernel driver for NSS vlan manager 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 FILES:=$(PKG_BUILD_DIR)/vlan/qca-nss-vlan.ko
AUTOLOAD:=$(call AutoLoad,51,qca-nss-vlan) AUTOLOAD:=$(call AutoLoad,51,qca-nss-vlan)
endef endef

View File

@ -0,0 +1,73 @@
From 6e65f6daecb09463688eaea0a234018a728196b8 Mon Sep 17 00:00:00 2001
From: Ansuel Smith <ansuelsmth@gmail.com>
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 <ansuelsmth@gmail.com>
---
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 <linux/kernel.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 14, 0))
#include <linux/notifier.h> /* for panic_notifier_list */
+#else
+#include <linux/panic_notifier.h>
+#endif
#include <linux/jiffies.h> /* 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 <linux/firmware.h>
#include <linux/of.h>
#include <linux/irq.h>
+#include <linux/ethtool.h>
#include "nss_hal.h"
#include "nss_arch.h"
--
2.34.1

View File

@ -0,0 +1,29 @@
From 4dd701916186803172a9f35e7e982a953613ad55 Mon Sep 17 00:00:00 2001
From: Ansuel Smith <ansuelsmth@gmail.com>
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 <ansuelsmth@gmail.com>
---
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

View File

@ -26,7 +26,7 @@ endef
define KernelPackage/qca-ssdk-nohnat define KernelPackage/qca-ssdk-nohnat
$(call KernelPackage/qca-ssdk/default-nohnat) $(call KernelPackage/qca-ssdk/default-nohnat)
DEPENDS:=@(TARGET_ipq806x||TARGET_ipq807x) DEPENDS:=@(TARGET_ipq806x||TARGET_ipq807x||TARGET_ipq60xx)
VARIANT:=nohnat VARIANT:=nohnat
endef endef

View File

@ -15,6 +15,6 @@ DEFAULT_PACKAGES += \
kmod-usb3 kmod-usb-dwc3 kmod-usb-dwc3-qcom \ kmod-usb3 kmod-usb-dwc3 kmod-usb-dwc3-qcom \
kmod-leds-gpio kmod-gpio-button-hotplug \ kmod-leds-gpio kmod-gpio-button-hotplug \
kmod-ath11k-ahb wpad-openssl uboot-envtools \ 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)) $(eval $(call BuildTarget))