From 1ad6125e7173749d4cddb9a52caac9e4c752e975 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Mon, 25 Mar 2024 13:23:01 -0400 Subject: [PATCH 1/4] linux6.1: update to 6.1.83, backport fix for kexec regression --- srcpkgs/linux6.1/files/arm64-dotconfig | 1 + srcpkgs/linux6.1/files/i386-dotconfig | 3 + srcpkgs/linux6.1/files/x86_64-dotconfig | 4 + srcpkgs/linux6.1/patches/revert-gbpages.patch | 75 +++++++++++++++++++ srcpkgs/linux6.1/template | 4 +- 5 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/linux6.1/patches/revert-gbpages.patch diff --git a/srcpkgs/linux6.1/files/arm64-dotconfig b/srcpkgs/linux6.1/files/arm64-dotconfig index 397682edc608b4..8906c3c9f130a7 100644 --- a/srcpkgs/linux6.1/files/arm64-dotconfig +++ b/srcpkgs/linux6.1/files/arm64-dotconfig @@ -11626,6 +11626,7 @@ CONFIG_NFS_DISABLE_UDP_SUPPORT=y # CONFIG_NFS_V4_2_READ_PLUS is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V2=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_NFSD_PNFS=y diff --git a/srcpkgs/linux6.1/files/i386-dotconfig b/srcpkgs/linux6.1/files/i386-dotconfig index 55b828bcd6f809..d68950e89816b1 100644 --- a/srcpkgs/linux6.1/files/i386-dotconfig +++ b/srcpkgs/linux6.1/files/i386-dotconfig @@ -459,6 +459,7 @@ CONFIG_X86_INTEL_TSX_MODE_OFF=y # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set CONFIG_EFI=y CONFIG_EFI_STUB=y +CONFIG_EFI_HANDOVER_PROTOCOL=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set @@ -489,6 +490,7 @@ CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_RETPOLINE=y CONFIG_RETHUNK=y # CONFIG_GDS_FORCE_MITIGATION is not set +CONFIG_MITIGATION_RFDS=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y # @@ -9815,6 +9817,7 @@ CONFIG_NFS_DISABLE_UDP_SUPPORT=y # CONFIG_NFS_V4_2_READ_PLUS is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V2=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_NFSD_PNFS=y diff --git a/srcpkgs/linux6.1/files/x86_64-dotconfig b/srcpkgs/linux6.1/files/x86_64-dotconfig index af91e23d8700a1..087f28ac707f59 100644 --- a/srcpkgs/linux6.1/files/x86_64-dotconfig +++ b/srcpkgs/linux6.1/files/x86_64-dotconfig @@ -473,6 +473,7 @@ CONFIG_X86_INTEL_TSX_MODE_OFF=y # CONFIG_X86_SGX is not set CONFIG_EFI=y CONFIG_EFI_STUB=y +CONFIG_EFI_HANDOVER_PROTOCOL=y CONFIG_EFI_MIXED=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set @@ -516,6 +517,7 @@ CONFIG_CPU_IBRS_ENTRY=y CONFIG_CPU_SRSO=y CONFIG_SLS=y # CONFIG_GDS_FORCE_MITIGATION is not set +CONFIG_MITIGATION_RFDS=y CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y @@ -8885,6 +8887,7 @@ CONFIG_INTEL_IOMMU_SVM=y CONFIG_INTEL_IOMMU_DEFAULT_ON=y CONFIG_INTEL_IOMMU_FLOPPY_WA=y # CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set +CONFIG_INTEL_IOMMU_PERF_EVENTS=y CONFIG_IRQ_REMAP=y CONFIG_HYPERV_IOMMU=y CONFIG_VIRTIO_IOMMU=m @@ -10062,6 +10065,7 @@ CONFIG_NFS_USE_KERNEL_DNS=y CONFIG_NFS_DISABLE_UDP_SUPPORT=y # CONFIG_NFS_V4_2_READ_PLUS is not set CONFIG_NFSD=m +CONFIG_NFSD_V2=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y diff --git a/srcpkgs/linux6.1/patches/revert-gbpages.patch b/srcpkgs/linux6.1/patches/revert-gbpages.patch new file mode 100644 index 00000000000000..48098db868202d --- /dev/null +++ b/srcpkgs/linux6.1/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.1/template b/srcpkgs/linux6.1/template index 5362648ff88173..c5ec1fb85ab20c 100644 --- a/srcpkgs/linux6.1/template +++ b/srcpkgs/linux6.1/template @@ -1,6 +1,6 @@ # Template file for 'linux6.1' pkgname=linux6.1 -version=6.1.79 +version=6.1.83 revision=1 short_desc="Linux kernel and modules (${version%.*} series)" maintainer="Đoàn Trần Công Danh " @@ -14,7 +14,7 @@ if [ "${version##*.}" != 0 ]; then fi checksum="2ca1f17051a430f6fed1196e4952717507171acfd97d96577212502703b25deb - 2a5ffcf13896415ef220fbc025aed7b3065525974b2dbcc04a1f71dbee7c2e3a" + 9268c5f79c00caf77e4be77795e26be36862eb60fd0d78a2f6bc5baeac84dd82" python_version=3 # XXX Restrict archs until a proper -dotconfig is available in FILESDIR. From f28829b560965a474159a7d4e85610eda6c5debe Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Mon, 25 Mar 2024 13:46:09 -0400 Subject: [PATCH 2/4] linux6.6: update to 6.6.23, backport fix for kexec regression --- srcpkgs/linux6.6/patches/revert-gbpages.patch | 75 +++++++++++++++++++ srcpkgs/linux6.6/template | 4 +- 2 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/linux6.6/patches/revert-gbpages.patch diff --git a/srcpkgs/linux6.6/patches/revert-gbpages.patch b/srcpkgs/linux6.6/patches/revert-gbpages.patch new file mode 100644 index 00000000000000..48098db868202d --- /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 174016326fd16d..d9ec2912b61dfe 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. From f836ea5a117573f36c9983f9a1e18d0b316e96f7 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Mon, 25 Mar 2024 13:46:39 -0400 Subject: [PATCH 3/4] linux6.7: update to 6.7.11, backport fix for kexec regression --- srcpkgs/linux6.7/patches/revert-gbpages.patch | 75 +++++++++++++++++++ srcpkgs/linux6.7/template | 4 +- 2 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/linux6.7/patches/revert-gbpages.patch diff --git a/srcpkgs/linux6.7/patches/revert-gbpages.patch b/srcpkgs/linux6.7/patches/revert-gbpages.patch new file mode 100644 index 00000000000000..48098db868202d --- /dev/null +++ b/srcpkgs/linux6.7/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.7/template b/srcpkgs/linux6.7/template index b49cb06112d271..cae1c268cb59bb 100644 --- a/srcpkgs/linux6.7/template +++ b/srcpkgs/linux6.7/template @@ -1,6 +1,6 @@ # Template file for 'linux6.7' pkgname=linux6.7 -version=6.7.10 +version=6.7.11 revision=1 short_desc="Linux kernel and modules (${version%.*} series)" maintainer="Duncaen " @@ -14,7 +14,7 @@ if [ "${version##*.}" != 0 ]; then fi checksum="ef31144a2576d080d8c31698e83ec9f66bf97c677fa2aaf0d5bbb9f3345b1069 - ad29958911035980290078c708a0a144943484a2f8c2ac408c040a81500393aa" + a3a0c4b0633b1ac22bfe73bf078e18bb2f17208f0c28c8539010df3a2d2bb760" python_version=3 # XXX Restrict archs until a proper -dotconfig is available in FILESDIR. From 707dd2517852a91eff88610eae08ee0c356d7d18 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Mon, 25 Mar 2024 13:47:20 -0400 Subject: [PATCH 4/4] linux6.8: update to 6.8.2, backport fix for kexec regression --- srcpkgs/linux6.8/patches/revert-gbpages.patch | 75 +++++++++++++++++++ srcpkgs/linux6.8/template | 4 +- 2 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 srcpkgs/linux6.8/patches/revert-gbpages.patch diff --git a/srcpkgs/linux6.8/patches/revert-gbpages.patch b/srcpkgs/linux6.8/patches/revert-gbpages.patch new file mode 100644 index 00000000000000..48098db868202d --- /dev/null +++ b/srcpkgs/linux6.8/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.8/template b/srcpkgs/linux6.8/template index 39857b710777c2..a0365a618bd173 100644 --- a/srcpkgs/linux6.8/template +++ b/srcpkgs/linux6.8/template @@ -1,6 +1,6 @@ # Template file for 'linux6.8' pkgname=linux6.8 -version=6.8.1 +version=6.8.2 revision=1 short_desc="Linux kernel and modules (${version%.*} series)" maintainer="Duncaen " @@ -14,7 +14,7 @@ if [ "${version##*.}" != 0 ]; then fi checksum="c969dea4e8bb6be991bbf7c010ba0e0a5643a3a8d8fb0a2aaa053406f1e965f3 - dfdfbf3045be48db3b99038a72eb2e6906a31dc11672230b4f45597de2e8cf11" + 1d190147d8eee0313f0ea1e565070fc4f88db9c20e9d85dc0c6b9ad62a69b3fa" python_version=3 # XXX Restrict archs until a proper -dotconfig is available in FILESDIR.