From 8d3574e183a92b230524216e181dd5c4ab6ac71e Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Tue, 10 Mar 2026 12:32:49 -0500 Subject: [PATCH] kek --- .../asahi-tcp-cong-wants-ce-events.patch | 32 +++++++++++++++++++ packages/linux-cachyos/prepare.nix | 9 +++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 packages/linux-cachyos/patches/asahi-tcp-cong-wants-ce-events.patch diff --git a/packages/linux-cachyos/patches/asahi-tcp-cong-wants-ce-events.patch b/packages/linux-cachyos/patches/asahi-tcp-cong-wants-ce-events.patch new file mode 100644 index 0000000..3852458 --- /dev/null +++ b/packages/linux-cachyos/patches/asahi-tcp-cong-wants-ce-events.patch @@ -0,0 +1,32 @@ +From: CachyOS/NixOS-CachyOS +Subject: [PATCH] net/tcp: add TCP_CONG_WANTS_CE_EVENTS for Asahi tree compat + +The CachyOS 6.18 base patch adds TCP_CONG_WANTS_CE_EVENTS at BIT(2) and +a tcp_ca_wants_ce_events() helper in include/net/tcp.h, and updates +tcp_bbr.c and tcp_input.c to use them. + +The Asahi linux tree already occupies BIT(2)–BIT(4) with AccECN flags +(TCP_CONG_NEEDS_ACCECN, TCP_CONG_ECT_1_NEGOTIATION, +TCP_CONG_NO_FALLBACK_RFC3168), so the CachyOS hunk that defines +TCP_CONG_WANTS_CE_EVENTS fails to apply, while the later hunks that +*use* it (tcp_ca_wants_ce_events(), tcp_bbr.c .flags) succeed, leaving +a dangling undefined-identifier compile error. + +Fix: define TCP_CONG_WANTS_CE_EVENTS at BIT(5) (the next free bit after +the AccECN flags) and add it to TCP_CONG_MASK. The tcp_ca_wants_ce_events() +helper and tcp_bbr.c / tcp_input.c callers are already in place from the +CachyOS patch, so this is sufficient to resolve the build error. + +--- a/include/net/tcp.h ++++ b/include/net/tcp.h +@@ -1198,6 +1198,10 @@ enum tcp_ca_ack_event_flags { + /* Cannot fallback to RFC3168 during AccECN negotiation */ + #define TCP_CONG_NO_FALLBACK_RFC3168 BIT(4) ++/* Wants notification of CE events (CA_EVENT_ECN_IS_CE, CA_EVENT_ECN_NO_CE). ++ * BIT(2)–BIT(4) are taken by AccECN flags in the Asahi tree. */ ++#define TCP_CONG_WANTS_CE_EVENTS BIT(5) + #define TCP_CONG_MASK (TCP_CONG_NON_RESTRICTED | TCP_CONG_NEEDS_ECN | \ +- TCP_CONG_NEEDS_ACCECN | TCP_CONG_ECT_1_NEGOTIATION | \ +- TCP_CONG_NO_FALLBACK_RFC3168) ++ TCP_CONG_NEEDS_ACCECN | TCP_CONG_ECT_1_NEGOTIATION | \ ++ TCP_CONG_NO_FALLBACK_RFC3168 | TCP_CONG_WANTS_CE_EVENTS) diff --git a/packages/linux-cachyos/prepare.nix b/packages/linux-cachyos/prepare.nix index 400278e..8deeb06 100644 --- a/packages/linux-cachyos/prepare.nix +++ b/packages/linux-cachyos/prepare.nix @@ -95,7 +95,14 @@ let ++ schedPatches ++ lib.optional ( cachyConfig.cpuSched == "hardened" - ) "${patches-src}/${majorMinor}/misc/0001-hardened.patch"; + ) "${patches-src}/${majorMinor}/misc/0001-hardened.patch" + # The Asahi tree occupies BIT(2)–BIT(4) in TCP_CONG_MASK with AccECN flags, + # so the CachyOS hunk defining TCP_CONG_WANTS_CE_EVENTS at BIT(2) fails to + # apply while later hunks that use it succeed — causing a compile error. + # This patch places the symbol at BIT(5) and adds it to TCP_CONG_MASK. + ++ lib.optional ( + cachyConfig.taste == "linux-cachyos-asahi" + ) ./patches/asahi-tcp-cong-wants-ce-events.patch; # There are some configurations set by the PKGBUILD pkgbuildConfig =