diff --git a/srcpkgs/linux6.6/patches/fix-musl-btf-ids.patch b/srcpkgs/linux6.6/patches/fix-musl-btf-ids.patch new file mode 100644 index 00000000000..bec96095197 --- /dev/null +++ b/srcpkgs/linux6.6/patches/fix-musl-btf-ids.patch @@ -0,0 +1,15 @@ +https://bugzilla.kernel.org/show_bug.cgi?id=218647 + +diff --git a/tools/include/linux/btf_ids.h b/tools/include/linux/btf_ids.h +index 72535f00572f..72ea363d434d 100644 +--- a/tools/include/linux/btf_ids.h ++++ b/tools/include/linux/btf_ids.h +@@ -3,6 +3,8 @@ + #ifndef _LINUX_BTF_IDS_H + #define _LINUX_BTF_IDS_H + ++#include /* for u32 */ ++ + struct btf_id_set { + u32 cnt; + u32 ids[]; diff --git a/srcpkgs/linux6.6/patches/revert-gbpages.patch b/srcpkgs/linux6.6/patches/revert-gbpages.patch new file mode 100644 index 00000000000..48098db8682 --- /dev/null +++ b/srcpkgs/linux6.6/patches/revert-gbpages.patch @@ -0,0 +1,75 @@ +From c567f2948f57bdc03ed03403ae0234085f376b7d Mon Sep 17 00:00:00 2001 +From: Ingo Molnar +Date: Mon, 25 Mar 2024 11:47:51 +0100 +Subject: Revert "x86/mm/ident_map: Use gbpages only where full GB page should + be mapped." + +This reverts commit d794734c9bbfe22f86686dc2909c25f5ffe1a572. + +While the original change tries to fix a bug, it also unintentionally broke +existing systems, see the regressions reported at: + + https://lore.kernel.org/all/3a1b9909-45ac-4f97-ad68-d16ef1ce99db@pavinjoseph.com/ + +Since d794734c9bbf was also marked for -stable, let's back it out before +causing more damage. + +Note that due to another upstream change the revert was not 100% automatic: + + 0a845e0f6348 mm/treewide: replace pud_large() with pud_leaf() + +Signed-off-by: Ingo Molnar +Cc: +Cc: Russ Anderson +Cc: Steve Wahl +Cc: Dave Hansen +Link: https://lore.kernel.org/all/3a1b9909-45ac-4f97-ad68-d16ef1ce99db@pavinjoseph.com/ +Fixes: d794734c9bbf ("x86/mm/ident_map: Use gbpages only where full GB page should be mapped.") +--- + arch/x86/mm/ident_map.c | 23 +++++------------------ + 1 file changed, 5 insertions(+), 18 deletions(-) + +diff --git a/arch/x86/mm/ident_map.c b/arch/x86/mm/ident_map.c +index a204a332c71fc5..968d7005f4a724 100644 +--- a/arch/x86/mm/ident_map.c ++++ b/arch/x86/mm/ident_map.c +@@ -26,31 +26,18 @@ static int ident_pud_init(struct x86_mapping_info *info, pud_t *pud_page, + for (; addr < end; addr = next) { + pud_t *pud = pud_page + pud_index(addr); + pmd_t *pmd; +- bool use_gbpage; + + next = (addr & PUD_MASK) + PUD_SIZE; + if (next > end) + next = end; + +- /* if this is already a gbpage, this portion is already mapped */ +- if (pud_large(*pud)) +- continue; +- +- /* Is using a gbpage allowed? */ +- use_gbpage = info->direct_gbpages; +- +- /* Don't use gbpage if it maps more than the requested region. */ +- /* at the begining: */ +- use_gbpage &= ((addr & ~PUD_MASK) == 0); +- /* ... or at the end: */ +- use_gbpage &= ((next & ~PUD_MASK) == 0); +- +- /* Never overwrite existing mappings */ +- use_gbpage &= !pud_present(*pud); +- +- if (use_gbpage) { ++ if (info->direct_gbpages) { + pud_t pudval; + ++ if (pud_present(*pud)) ++ continue; ++ ++ addr &= PUD_MASK; + pudval = __pud((addr - info->offset) | info->page_flag); + set_pud(pud, pudval); + continue; +-- +cgit 1.2.3-korg + diff --git a/srcpkgs/linux6.6/template b/srcpkgs/linux6.6/template index 174016326fd..d9ec2912b61 100644 --- a/srcpkgs/linux6.6/template +++ b/srcpkgs/linux6.6/template @@ -1,6 +1,6 @@ # Template file for 'linux6.6' pkgname=linux6.6 -version=6.6.22 +version=6.6.23 revision=1 short_desc="Linux kernel and modules (${version%.*} series)" maintainer="Duncaen " @@ -14,7 +14,7 @@ if [ "${version##*.}" != 0 ]; then fi checksum="d926a06c63dd8ac7df3f86ee1ffc2ce2a3b81a2d168484e76b5b389aba8e56d0 - a8a5380de3206b2aeed4cb0425e319655c2df0babbfb1cb2a4fdd7e8dbcc3c29" + a40130b4f55fb0b5e2c968a39a0bfa44e76b0110e62139d5fa82c02422ef31c9" python_version=3 # XXX Restrict archs until a proper -dotconfig is available in FILESDIR.