Skip to content

Commit

Permalink
x86: add linux kernel 6.6 support
Browse files Browse the repository at this point in the history
  • Loading branch information
coolsnowwolf committed Jan 25, 2024
1 parent 7515f84 commit 9745339
Show file tree
Hide file tree
Showing 15 changed files with 2,492 additions and 8 deletions.
2 changes: 1 addition & 1 deletion package/kernel/linux/modules/other.mk
Original file line number Diff line number Diff line change
Expand Up @@ -1336,7 +1336,7 @@ $(eval $(call KernelPackage,itco-wdt))
define KernelPackage/mhi-bus
SUBMENU:=$(OTHER_MENU)
TITLE:=MHI bus
DEPENDS:=@(LINUX_5_15||LINUX_6_1)
DEPENDS:=@(LINUX_5_15||LINUX_6_1||LINUX_6_6)
KCONFIG:=CONFIG_MHI_BUS \
CONFIG_MHI_BUS_DEBUG=y
FILES:=$(LINUX_DIR)/drivers/bus/mhi/host/mhi.ko
Expand Down
11 changes: 6 additions & 5 deletions package/kernel/linux/modules/video.mk
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ define KernelPackage/drm
TITLE:=Direct Rendering Manager (DRM) support
HIDDEN:=1
DEPENDS:=+kmod-dma-buf +kmod-i2c-core +kmod-backlight \
+(LINUX_5_15||LINUX_6_1):kmod-fb
+(LINUX_5_15||LINUX_6_1||LINUX_6_6):kmod-fb
KCONFIG:=CONFIG_DRM \
[email protected] \
[email protected]
Expand Down Expand Up @@ -395,6 +395,7 @@ define KernelPackage/drm-amdgpu
CONFIG_DRM_AMD_DC=y \
CONFIG_DEBUG_KERNEL_DC=n
FILES:=$(LINUX_DIR)/drivers/gpu/drm/amd/amdgpu/amdgpu.ko \
$(LINUX_DIR)/drivers/gpu/drm/amd/amdxcp/[email protected] \
$(LINUX_DIR)/drivers/gpu/drm/scheduler/gpu-sched.ko
AUTOLOAD:=$(call AutoProbe,amdgpu)
endef
Expand Down Expand Up @@ -526,7 +527,7 @@ define KernelPackage/drm-radeon
SUBMENU:=$(VIDEO_MENU)
TITLE:=Radeon DRM support
DEPENDS:=@TARGET_x86||TARGET_phytium @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-kms-helper \
+kmod-drm-ttm +kmod-i2c-algo-bit +LINUX_6_1:kmod-acpi-video +radeon-firmware
+kmod-drm-ttm +kmod-i2c-algo-bit +(LINUX_6_1||LINUX_6_6):kmod-acpi-video +radeon-firmware
KCONFIG:=CONFIG_DRM_RADEON
FILES:=$(LINUX_DIR)/drivers/gpu/drm/radeon/radeon.ko
AUTOLOAD:=$(call AutoProbe,radeon)
Expand Down Expand Up @@ -555,7 +556,7 @@ $(eval $(call KernelPackage,drm-sched))
define KernelPackage/drm-nouveau
SUBMENU:=$(VIDEO_MENU)
TITLE:=nouveau DRM support
DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-drm-kms-helper +LINUX_6_1:kmod-acpi-video
DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-drm-kms-helper +(LINUX_6_1||LINUX_6_6):kmod-acpi-video
KCONFIG:=CONFIG_DRM_NOUVEAU \
NOUVEAU_DEBUG=5 \
NOUVEAU_DEBUG_DEFAULT=3 \
Expand All @@ -579,7 +580,7 @@ define KernelPackage/video-core
SUBMENU:=$(VIDEO_MENU)
TITLE=Video4Linux support
DEPENDS:=+PACKAGE_kmod-i2c-core:kmod-i2c-core \
+LINUX_6_1:kmod-media-core
+LINUX_6_1||LINUX_6_6:kmod-media-core
KCONFIG:= \
CONFIG_VIDEO_DEV \
CONFIG_V4L_PLATFORM_DRIVERS=y
Expand Down Expand Up @@ -1218,7 +1219,7 @@ define KernelPackage/drm-i915
SUBMENU:=$(VIDEO_MENU)
TITLE:=Intel GPU drm support
DEPENDS:=@TARGET_x86 +kmod-drm-ttm +kmod-drm-kms-helper +i915-firmware \
+LINUX_6_1:kmod-drm-display-helper +LINUX_6_1:kmod-acpi-video
+(LINUX_6_1||LINUX_6_6):kmod-drm-display-helper +(LINUX_6_1||LINUX_6_6):kmod-acpi-video
KCONFIG:= \
CONFIG_INTEL_GTT \
CONFIG_DRM_I915 \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
From: Felix Fietkau <[email protected]>
Subject: netfilter: optional tcp window check

Signed-off-by: Felix Fietkau <[email protected]>
Signed-off-by: Christian 'Ansuel' Marangi <[email protected]>
---
net/netfilter/nf_conntrack_proto_tcp.c | 13 +++++++++++++
1 file changed, 13 insertions(+)

--- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -513,11 +513,15 @@ tcp_in_window(struct nf_conn *ct, enum i
struct ip_ct_tcp *state = &ct->proto.tcp;
struct ip_ct_tcp_state *sender = &state->seen[dir];
struct ip_ct_tcp_state *receiver = &state->seen[!dir];
+ const struct nf_tcp_net *tn = nf_tcp_pernet(nf_ct_net(ct));
__u32 seq, ack, sack, end, win, swin;
bool in_recv_win, seq_ok;
s32 receiver_offset;
u16 win_raw;

+ if (tn->tcp_no_window_check)
+ return NFCT_TCP_ACCEPT;
+
/*
* Get the required data from the packet.
*/
@@ -1257,7 +1261,7 @@ int nf_conntrack_tcp_packet(struct nf_co
IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED &&
timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK])
timeout = timeouts[TCP_CONNTRACK_UNACK];
- else if (ct->proto.tcp.last_win == 0 &&
+ else if (!tn->tcp_no_window_check && ct->proto.tcp.last_win == 0 &&
timeouts[new_state] > timeouts[TCP_CONNTRACK_RETRANS])
timeout = timeouts[TCP_CONNTRACK_RETRANS];
else
@@ -1573,6 +1577,9 @@ void nf_conntrack_tcp_init_net(struct ne
*/
tn->tcp_be_liberal = 0;

+ /* Skip Windows Check */
+ tn->tcp_no_window_check = 0;
+
/* If it's non-zero, we turn off RST sequence number check */
tn->tcp_ignore_invalid_rst = 0;

--- a/net/netfilter/nf_conntrack_standalone.c
+++ b/net/netfilter/nf_conntrack_standalone.c
@@ -637,6 +637,7 @@ enum nf_ct_sysctl_index {
#endif
NF_SYSCTL_CT_PROTO_TCP_LOOSE,
NF_SYSCTL_CT_PROTO_TCP_LIBERAL,
+ NF_SYSCTL_CT_PROTO_TCP_NO_WINDOW_CHECK,
NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST,
NF_SYSCTL_CT_PROTO_TCP_MAX_RETRANS,
NF_SYSCTL_CT_PROTO_TIMEOUT_UDP,
@@ -844,6 +845,14 @@ static struct ctl_table nf_ct_sysctl_tab
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
+ [NF_SYSCTL_CT_PROTO_TCP_NO_WINDOW_CHECK] = {
+ .procname = "nf_conntrack_tcp_no_window_check",
+ .maxlen = sizeof(u8),
+ .mode = 0644,
+ .proc_handler = proc_dou8vec_minmax,
+ .extra1 = SYSCTL_ZERO,
+ .extra2 = SYSCTL_ONE,
+ },
[NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST] = {
.procname = "nf_conntrack_tcp_ignore_invalid_rst",
.maxlen = sizeof(u8),
@@ -1054,6 +1063,7 @@ static void nf_conntrack_standalone_init

XASSIGN(LOOSE, &tn->tcp_loose);
XASSIGN(LIBERAL, &tn->tcp_be_liberal);
+ XASSIGN(NO_WINDOW_CHECK, &tn->tcp_no_window_check);
XASSIGN(MAX_RETRANS, &tn->tcp_max_retrans);
XASSIGN(IGNORE_INVALID_RST, &tn->tcp_ignore_invalid_rst);
#undef XASSIGN
--- a/include/net/netns/conntrack.h
+++ b/include/net/netns/conntrack.h
@@ -26,6 +26,7 @@ struct nf_tcp_net {
unsigned int timeouts[TCP_CONNTRACK_TIMEOUT_MAX];
u8 tcp_loose;
u8 tcp_be_liberal;
+ u8 tcp_no_window_check;
u8 tcp_max_retrans;
u8 tcp_ignore_invalid_rst;
#if IS_ENABLED(CONFIG_NF_FLOW_TABLE)
Loading

0 comments on commit 9745339

Please sign in to comment.