From: Sasha Levin Date: Sun, 6 Oct 2024 08:06:49 +0000 (-0400) Subject: Drop minmax-avoid-overly-complex-min-max-macro-arguments-.patch X-Git-Tag: v6.6.55~141 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4e7227e385913e899a484a6d9b321b5065bfd0b4;p=thirdparty%2Fkernel%2Fstable-queue.git Drop minmax-avoid-overly-complex-min-max-macro-arguments-.patch Signed-off-by: Sasha Levin --- diff --git a/queue-4.19/minmax-avoid-overly-complex-min-max-macro-arguments-.patch b/queue-4.19/minmax-avoid-overly-complex-min-max-macro-arguments-.patch deleted file mode 100644 index b062034882a..00000000000 --- a/queue-4.19/minmax-avoid-overly-complex-min-max-macro-arguments-.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 67040aee5f7d6230e3d41bce54fa185fc6918a57 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 26 Jul 2024 15:09:07 -0700 -Subject: minmax: avoid overly complex min()/max() macro arguments in xen - -From: Linus Torvalds - -[ Upstream commit e8432ac802a028eaee6b1e86383d7cd8e9fb8431 ] - -We have some very fancy min/max macros that have tons of sanity checking -to warn about mixed signedness etc. - -This is all things that a sane compiler should warn about, but there are -no sane compiler interfaces for this, and '-Wsign-compare' is broken [1] -and not useful. - -So then we compensate (some would say over-compensate) by doing the -checks manually with some truly horrid macro games. - -And no, we can't just use __builtin_types_compatible_p(), because the -whole question of "does it make sense to compare these two values" is a -lot more complicated than that. - -For example, it makes a ton of sense to compare unsigned values with -simple constants like "5", even if that is indeed a signed type. So we -have these very strange macros to try to make sensible type checking -decisions on the arguments to 'min()' and 'max()'. - -But that can cause enormous code expansion if the min()/max() macros are -used with complicated expressions, and particularly if you nest these -things so that you get the first big expansion then expanded again. - -The xen setup.c file ended up ballooning to over 50MB of preprocessed -noise that takes 15s to compile (obviously depending on the build host), -largely due to one single line. - -So let's split that one single line to just be simpler. I think it ends -up being more legible to humans too at the same time. Now that single -file compiles in under a second. - -Reported-and-reviewed-by: Lorenzo Stoakes -Link: https://lore.kernel.org/all/c83c17bb-be75-4c67-979d-54eee38774c6@lucifer.local/ -Link: https://staticthinking.wordpress.com/2023/07/25/wsign-compare-is-garbage/ [1] -Cc: David Laight -Signed-off-by: Linus Torvalds -Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory") -Signed-off-by: Sasha Levin ---- - arch/x86/xen/setup.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c -index 69fd1134b7fcf..ad69e5796cd0c 100644 ---- a/arch/x86/xen/setup.c -+++ b/arch/x86/xen/setup.c -@@ -737,6 +737,7 @@ char * __init xen_memory_setup(void) - struct xen_memory_map memmap; - unsigned long max_pages; - unsigned long extra_pages = 0; -+ unsigned long maxmem_pages; - int i; - int op; - -@@ -802,8 +803,8 @@ char * __init xen_memory_setup(void) - * the initial memory is also very large with respect to - * lowmem, but we won't try to deal with that here. - */ -- extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)), -- extra_pages, max_pages - max_pfn); -+ maxmem_pages = EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)); -+ extra_pages = min3(maxmem_pages, extra_pages, max_pages - max_pfn); - i = 0; - addr = xen_e820_table.entries[0].addr; - size = xen_e820_table.entries[0].size; --- -2.43.0 - diff --git a/queue-4.19/series b/queue-4.19/series index 873d63b21a2..0cba482f4fe 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -62,7 +62,6 @@ ipmi-docs-don-t-advertise-deprecated-sysfs-entries.patch drm-msm-fix-s-null-argument-error.patch xen-use-correct-end-address-of-kernel-for-conflict-c.patch mm-add-page_align_down-macro.patch -minmax-avoid-overly-complex-min-max-macro-arguments-.patch xen-introduce-generic-helper-checking-for-memory-map.patch xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch xen-add-capability-to-remap-non-ram-pages-to-differe.patch diff --git a/queue-5.10/minmax-avoid-overly-complex-min-max-macro-arguments-.patch b/queue-5.10/minmax-avoid-overly-complex-min-max-macro-arguments-.patch deleted file mode 100644 index 6e176d91b47..00000000000 --- a/queue-5.10/minmax-avoid-overly-complex-min-max-macro-arguments-.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 93f26258df267ffeab534e270df29f63129d2926 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 26 Jul 2024 15:09:07 -0700 -Subject: minmax: avoid overly complex min()/max() macro arguments in xen - -From: Linus Torvalds - -[ Upstream commit e8432ac802a028eaee6b1e86383d7cd8e9fb8431 ] - -We have some very fancy min/max macros that have tons of sanity checking -to warn about mixed signedness etc. - -This is all things that a sane compiler should warn about, but there are -no sane compiler interfaces for this, and '-Wsign-compare' is broken [1] -and not useful. - -So then we compensate (some would say over-compensate) by doing the -checks manually with some truly horrid macro games. - -And no, we can't just use __builtin_types_compatible_p(), because the -whole question of "does it make sense to compare these two values" is a -lot more complicated than that. - -For example, it makes a ton of sense to compare unsigned values with -simple constants like "5", even if that is indeed a signed type. So we -have these very strange macros to try to make sensible type checking -decisions on the arguments to 'min()' and 'max()'. - -But that can cause enormous code expansion if the min()/max() macros are -used with complicated expressions, and particularly if you nest these -things so that you get the first big expansion then expanded again. - -The xen setup.c file ended up ballooning to over 50MB of preprocessed -noise that takes 15s to compile (obviously depending on the build host), -largely due to one single line. - -So let's split that one single line to just be simpler. I think it ends -up being more legible to humans too at the same time. Now that single -file compiles in under a second. - -Reported-and-reviewed-by: Lorenzo Stoakes -Link: https://lore.kernel.org/all/c83c17bb-be75-4c67-979d-54eee38774c6@lucifer.local/ -Link: https://staticthinking.wordpress.com/2023/07/25/wsign-compare-is-garbage/ [1] -Cc: David Laight -Signed-off-by: Linus Torvalds -Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory") -Signed-off-by: Sasha Levin ---- - arch/x86/xen/setup.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c -index 629c94d1ab24c..dfb11a7420a3f 100644 ---- a/arch/x86/xen/setup.c -+++ b/arch/x86/xen/setup.c -@@ -734,6 +734,7 @@ char * __init xen_memory_setup(void) - struct xen_memory_map memmap; - unsigned long max_pages; - unsigned long extra_pages = 0; -+ unsigned long maxmem_pages; - int i; - int op; - -@@ -796,8 +797,8 @@ char * __init xen_memory_setup(void) - * Make sure we have no memory above max_pages, as this area - * isn't handled by the p2m management. - */ -- extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)), -- extra_pages, max_pages - max_pfn); -+ maxmem_pages = EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)); -+ extra_pages = min3(maxmem_pages, extra_pages, max_pages - max_pfn); - i = 0; - addr = xen_e820_table.entries[0].addr; - size = xen_e820_table.entries[0].size; --- -2.43.0 - diff --git a/queue-5.10/series b/queue-5.10/series index 449229885a0..16afda1e565 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -132,7 +132,6 @@ drm-msm-fix-s-null-argument-error.patch drivers-drm-exynos_drm_gsc-fix-wrong-assignment-in-g.patch xen-use-correct-end-address-of-kernel-for-conflict-c.patch mm-add-page_align_down-macro.patch -minmax-avoid-overly-complex-min-max-macro-arguments-.patch xen-introduce-generic-helper-checking-for-memory-map.patch xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch xen-add-capability-to-remap-non-ram-pages-to-differe.patch diff --git a/queue-5.15/minmax-avoid-overly-complex-min-max-macro-arguments-.patch b/queue-5.15/minmax-avoid-overly-complex-min-max-macro-arguments-.patch deleted file mode 100644 index 6be7276fe0d..00000000000 --- a/queue-5.15/minmax-avoid-overly-complex-min-max-macro-arguments-.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 194be39a007696bbdabe9cdafb1e02ad4d28230d Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 26 Jul 2024 15:09:07 -0700 -Subject: minmax: avoid overly complex min()/max() macro arguments in xen - -From: Linus Torvalds - -[ Upstream commit e8432ac802a028eaee6b1e86383d7cd8e9fb8431 ] - -We have some very fancy min/max macros that have tons of sanity checking -to warn about mixed signedness etc. - -This is all things that a sane compiler should warn about, but there are -no sane compiler interfaces for this, and '-Wsign-compare' is broken [1] -and not useful. - -So then we compensate (some would say over-compensate) by doing the -checks manually with some truly horrid macro games. - -And no, we can't just use __builtin_types_compatible_p(), because the -whole question of "does it make sense to compare these two values" is a -lot more complicated than that. - -For example, it makes a ton of sense to compare unsigned values with -simple constants like "5", even if that is indeed a signed type. So we -have these very strange macros to try to make sensible type checking -decisions on the arguments to 'min()' and 'max()'. - -But that can cause enormous code expansion if the min()/max() macros are -used with complicated expressions, and particularly if you nest these -things so that you get the first big expansion then expanded again. - -The xen setup.c file ended up ballooning to over 50MB of preprocessed -noise that takes 15s to compile (obviously depending on the build host), -largely due to one single line. - -So let's split that one single line to just be simpler. I think it ends -up being more legible to humans too at the same time. Now that single -file compiles in under a second. - -Reported-and-reviewed-by: Lorenzo Stoakes -Link: https://lore.kernel.org/all/c83c17bb-be75-4c67-979d-54eee38774c6@lucifer.local/ -Link: https://staticthinking.wordpress.com/2023/07/25/wsign-compare-is-garbage/ [1] -Cc: David Laight -Signed-off-by: Linus Torvalds -Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory") -Signed-off-by: Sasha Levin ---- - arch/x86/xen/setup.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c -index 629c94d1ab24c..dfb11a7420a3f 100644 ---- a/arch/x86/xen/setup.c -+++ b/arch/x86/xen/setup.c -@@ -734,6 +734,7 @@ char * __init xen_memory_setup(void) - struct xen_memory_map memmap; - unsigned long max_pages; - unsigned long extra_pages = 0; -+ unsigned long maxmem_pages; - int i; - int op; - -@@ -796,8 +797,8 @@ char * __init xen_memory_setup(void) - * Make sure we have no memory above max_pages, as this area - * isn't handled by the p2m management. - */ -- extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)), -- extra_pages, max_pages - max_pfn); -+ maxmem_pages = EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)); -+ extra_pages = min3(maxmem_pages, extra_pages, max_pages - max_pfn); - i = 0; - addr = xen_e820_table.entries[0].addr; - size = xen_e820_table.entries[0].size; --- -2.43.0 - diff --git a/queue-5.15/series b/queue-5.15/series index 1c416681c42..63b2d4b10f0 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -173,7 +173,6 @@ drm-msm-fix-s-null-argument-error.patch drivers-drm-exynos_drm_gsc-fix-wrong-assignment-in-g.patch xen-use-correct-end-address-of-kernel-for-conflict-c.patch mm-add-page_align_down-macro.patch -minmax-avoid-overly-complex-min-max-macro-arguments-.patch xen-introduce-generic-helper-checking-for-memory-map.patch xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch xen-add-capability-to-remap-non-ram-pages-to-differe.patch diff --git a/queue-5.4/minmax-avoid-overly-complex-min-max-macro-arguments-.patch b/queue-5.4/minmax-avoid-overly-complex-min-max-macro-arguments-.patch deleted file mode 100644 index 2f91cd66d39..00000000000 --- a/queue-5.4/minmax-avoid-overly-complex-min-max-macro-arguments-.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 591f1dea020d6398bebbbf0eb10967d1eca8a53e Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 26 Jul 2024 15:09:07 -0700 -Subject: minmax: avoid overly complex min()/max() macro arguments in xen - -From: Linus Torvalds - -[ Upstream commit e8432ac802a028eaee6b1e86383d7cd8e9fb8431 ] - -We have some very fancy min/max macros that have tons of sanity checking -to warn about mixed signedness etc. - -This is all things that a sane compiler should warn about, but there are -no sane compiler interfaces for this, and '-Wsign-compare' is broken [1] -and not useful. - -So then we compensate (some would say over-compensate) by doing the -checks manually with some truly horrid macro games. - -And no, we can't just use __builtin_types_compatible_p(), because the -whole question of "does it make sense to compare these two values" is a -lot more complicated than that. - -For example, it makes a ton of sense to compare unsigned values with -simple constants like "5", even if that is indeed a signed type. So we -have these very strange macros to try to make sensible type checking -decisions on the arguments to 'min()' and 'max()'. - -But that can cause enormous code expansion if the min()/max() macros are -used with complicated expressions, and particularly if you nest these -things so that you get the first big expansion then expanded again. - -The xen setup.c file ended up ballooning to over 50MB of preprocessed -noise that takes 15s to compile (obviously depending on the build host), -largely due to one single line. - -So let's split that one single line to just be simpler. I think it ends -up being more legible to humans too at the same time. Now that single -file compiles in under a second. - -Reported-and-reviewed-by: Lorenzo Stoakes -Link: https://lore.kernel.org/all/c83c17bb-be75-4c67-979d-54eee38774c6@lucifer.local/ -Link: https://staticthinking.wordpress.com/2023/07/25/wsign-compare-is-garbage/ [1] -Cc: David Laight -Signed-off-by: Linus Torvalds -Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory") -Signed-off-by: Sasha Levin ---- - arch/x86/xen/setup.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c -index d19fcca0b30b3..858de52cfacff 100644 ---- a/arch/x86/xen/setup.c -+++ b/arch/x86/xen/setup.c -@@ -746,6 +746,7 @@ char * __init xen_memory_setup(void) - struct xen_memory_map memmap; - unsigned long max_pages; - unsigned long extra_pages = 0; -+ unsigned long maxmem_pages; - int i; - int op; - -@@ -815,8 +816,8 @@ char * __init xen_memory_setup(void) - * the initial memory is also very large with respect to - * lowmem, but we won't try to deal with that here. - */ -- extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)), -- extra_pages, max_pages - max_pfn); -+ maxmem_pages = EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)); -+ extra_pages = min3(maxmem_pages, extra_pages, max_pages - max_pfn); - i = 0; - addr = xen_e820_table.entries[0].addr; - size = xen_e820_table.entries[0].size; --- -2.43.0 - diff --git a/queue-5.4/series b/queue-5.4/series index e8c3c891201..5bfd3096f6f 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -84,7 +84,6 @@ drm-msm-fix-s-null-argument-error.patch drivers-drm-exynos_drm_gsc-fix-wrong-assignment-in-g.patch xen-use-correct-end-address-of-kernel-for-conflict-c.patch mm-add-page_align_down-macro.patch -minmax-avoid-overly-complex-min-max-macro-arguments-.patch xen-introduce-generic-helper-checking-for-memory-map.patch xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch xen-add-capability-to-remap-non-ram-pages-to-differe.patch diff --git a/queue-6.1/minmax-avoid-overly-complex-min-max-macro-arguments-.patch b/queue-6.1/minmax-avoid-overly-complex-min-max-macro-arguments-.patch deleted file mode 100644 index 67ac95ce84d..00000000000 --- a/queue-6.1/minmax-avoid-overly-complex-min-max-macro-arguments-.patch +++ /dev/null @@ -1,77 +0,0 @@ -From c135851d72faadad85ace268fc01c300d9f1b13e Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 26 Jul 2024 15:09:07 -0700 -Subject: minmax: avoid overly complex min()/max() macro arguments in xen - -From: Linus Torvalds - -[ Upstream commit e8432ac802a028eaee6b1e86383d7cd8e9fb8431 ] - -We have some very fancy min/max macros that have tons of sanity checking -to warn about mixed signedness etc. - -This is all things that a sane compiler should warn about, but there are -no sane compiler interfaces for this, and '-Wsign-compare' is broken [1] -and not useful. - -So then we compensate (some would say over-compensate) by doing the -checks manually with some truly horrid macro games. - -And no, we can't just use __builtin_types_compatible_p(), because the -whole question of "does it make sense to compare these two values" is a -lot more complicated than that. - -For example, it makes a ton of sense to compare unsigned values with -simple constants like "5", even if that is indeed a signed type. So we -have these very strange macros to try to make sensible type checking -decisions on the arguments to 'min()' and 'max()'. - -But that can cause enormous code expansion if the min()/max() macros are -used with complicated expressions, and particularly if you nest these -things so that you get the first big expansion then expanded again. - -The xen setup.c file ended up ballooning to over 50MB of preprocessed -noise that takes 15s to compile (obviously depending on the build host), -largely due to one single line. - -So let's split that one single line to just be simpler. I think it ends -up being more legible to humans too at the same time. Now that single -file compiles in under a second. - -Reported-and-reviewed-by: Lorenzo Stoakes -Link: https://lore.kernel.org/all/c83c17bb-be75-4c67-979d-54eee38774c6@lucifer.local/ -Link: https://staticthinking.wordpress.com/2023/07/25/wsign-compare-is-garbage/ [1] -Cc: David Laight -Signed-off-by: Linus Torvalds -Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory") -Signed-off-by: Sasha Levin ---- - arch/x86/xen/setup.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c -index 46a2cb782ab7d..f0bb5e350990d 100644 ---- a/arch/x86/xen/setup.c -+++ b/arch/x86/xen/setup.c -@@ -731,6 +731,7 @@ char * __init xen_memory_setup(void) - struct xen_memory_map memmap; - unsigned long max_pages; - unsigned long extra_pages = 0; -+ unsigned long maxmem_pages; - int i; - int op; - -@@ -793,8 +794,8 @@ char * __init xen_memory_setup(void) - * Make sure we have no memory above max_pages, as this area - * isn't handled by the p2m management. - */ -- extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)), -- extra_pages, max_pages - max_pfn); -+ maxmem_pages = EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)); -+ extra_pages = min3(maxmem_pages, extra_pages, max_pages - max_pfn); - i = 0; - addr = xen_e820_table.entries[0].addr; - size = xen_e820_table.entries[0].size; --- -2.43.0 - diff --git a/queue-6.1/series b/queue-6.1/series index 6f67705d44d..19c1fbf419a 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -132,7 +132,6 @@ drivers-drm-exynos_drm_gsc-fix-wrong-assignment-in-g.patch xen-use-correct-end-address-of-kernel-for-conflict-c.patch hid-wacom-support-sequence-numbers-smaller-than-16-b.patch hid-wacom-do-not-warn-about-dropped-packets-for-firs.patch -minmax-avoid-overly-complex-min-max-macro-arguments-.patch xen-introduce-generic-helper-checking-for-memory-map.patch xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch xen-add-capability-to-remap-non-ram-pages-to-differe.patch