On Fri, 19 Sep 2025 14:11:37 +0200 Christian König christian.koenig@amd.com wrote:
On 19.09.25 12:17, Eliav Farber wrote:
This series includes a total of 27 patches, to align minmax.h of v5.15.y with v6.17-rc6.
The set consists of 24 commits that directly update minmax.h:
- 92d23c6e9415 ("overflow, tracing: Define the is_signed_type() macro once")
- 5efcecd9a3b1 ("minmax: sanity check constant bounds when clamping")
- 2122e2a4efc2 ("minmax: clamp more efficiently by avoiding extra comparison")
- f9bff0e31881 ("minmax: add in_range() macro")
- c952c748c7a9 ("minmax: Introduce {min,max}_array()")
- 5e57418a2031 ("minmax: deduplicate __unconst_integer_typeof()")
- f6e9d38f8eb0 ("minmax: fix header inclusions")
- d03eba99f5bf ("minmax: allow min()/max()/clamp() if the arguments have the same signedness.")
- f4b84b2ff851 ("minmax: fix indentation of __cmp_once() and __clamp_once()")
- 4ead534fba42 ("minmax: allow comparisons of 'int' against 'unsigned char/short'")
- 867046cc7027 ("minmax: relax check to allow comparison between unsigned arguments and signed constants")
- 3a7e02c040b1 ("minmax: avoid overly complicated constant expressions in VM code")
- 017fa3e89187 ("minmax: simplify and clarify min_t()/max_t() implementation")
- 1a251f52cfdc ("minmax: make generic MIN() and MAX() macros available everywhere")
- dc1c8034e31b ("minmax: simplify min()/max()/clamp() implementation")
- 22f546873149 ("minmax: improve macro expansion and type checking")
- 21b136cc63d2 ("minmax: fix up min3() and max3() too")
- 71ee9b16251e ("minmax.h: add whitespace around operators and after commas")
- 10666e992048 ("minmax.h: update some comments")
- b280bb27a9f7 ("minmax.h: reduce the #define expansion of min(), max() and clamp()")
- a5743f32baec ("minmax.h: use BUILD_BUG_ON_MSG() for the lo < hi test in clamp()")
- c3939872ee4a ("minmax.h: move all the clamp() definitions after the min/max() ones")
- 495bba17cdf9 ("minmax.h: simplify the variants of clamp()")
- 2b97aaf74ed5 ("minmax.h: remove some #defines that are only expanded once")
2 prerequisite commits that adjust users of MIN and MAX macros (to prevent compilation issues): 13) 4477b39c32fd ("minmax: add a few more MIN_T/MAX_T users") 17) cb04e8b1d2f2 ("minmax: don't use max() in situations that want a C constant expression")
1 additional commit introduced to resolve a build failures during the backport: 16) lib: zstd: drop local MIN/MAX macros in favor of generic ones
The primary motivation is to bring in commit (8). In mainline, this change allows min()/max()/clamp() to accept mixed argument types when both share the same signedness. Backported patches to v5.10.y that use such forms trigger compiler warnings, which in turn cause build failures when -Werror is enabled.
Originaly I aligned 5.10.y to 5.15.y, but David Laight commented that I need to pick up the later changes (from Linus) as well.
Andy Shevchenko (2): minmax: deduplicate __unconst_integer_typeof() minmax: fix header inclusions
Bart Van Assche (1): overflow, tracing: Define the is_signed_type() macro once
David Laight (11): minmax: allow min()/max()/clamp() if the arguments have the same signedness. minmax: fix indentation of __cmp_once() and __clamp_once() minmax: allow comparisons of 'int' against 'unsigned char/short' minmax: relax check to allow comparison between unsigned arguments and signed constants minmax.h: add whitespace around operators and after commas minmax.h: update some comments minmax.h: reduce the #define expansion of min(), max() and clamp() minmax.h: use BUILD_BUG_ON_MSG() for the lo < hi test in clamp() minmax.h: move all the clamp() definitions after the min/max() ones minmax.h: simplify the variants of clamp() minmax.h: remove some #defines that are only expanded once
Eliav Farber (1): lib: zstd: drop local MIN/MAX macros in favor of generic ones
Herve Codina (1): minmax: Introduce {min,max}_array()
Jason A. Donenfeld (2): minmax: sanity check constant bounds when clamping minmax: clamp more efficiently by avoiding extra comparison
Linus Torvalds (8): minmax: avoid overly complicated constant expressions in VM code minmax: add a few more MIN_T/MAX_T users minmax: simplify and clarify min_t()/max_t() implementation minmax: make generic MIN() and MAX() macros available everywhere minmax: don't use max() in situations that want a C constant expression minmax: simplify min()/max()/clamp() implementation minmax: improve macro expansion and type checking minmax: fix up min3() and max3() too
Matthew Wilcox (Oracle) (1): minmax: add in_range() macro
arch/arm/mm/pageattr.c | 6 +- arch/um/drivers/mconsole_user.c | 2 + arch/x86/mm/pgtable.c | 2 +-
drivers/edac/sb_edac.c | 4 +- drivers/edac/skx_common.h | 1 - .../drm/amd/display/modules/hdcp/hdcp_ddc.c | 2 + .../drm/amd/pm/powerplay/hwmgr/ppevvmath.h | 14 +- .../drm/arm/display/include/malidp_utils.h | 2 +- .../display/komeda/komeda_pipeline_state.c | 24 +- drivers/gpu/drm/drm_color_mgmt.c | 2 +- drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 6 - drivers/gpu/drm/radeon/evergreen_cs.c | 2 + drivers/hwmon/adt7475.c | 24 +- drivers/input/touchscreen/cyttsp4_core.c | 2 +- drivers/md/dm-integrity.c | 2 +- drivers/media/dvb-frontends/stv0367_priv.h | 3 + .../net/ethernet/chelsio/cxgb3/cxgb3_main.c | 18 +- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +- drivers/net/fjes/fjes_main.c | 4 +- drivers/nfc/pn544/i2c.c | 2 - drivers/platform/x86/sony-laptop.c | 1 - drivers/scsi/isci/init.c | 6 +-
I do see the value to backport the infrastructure, but why are driver specific changes backported as well?
They will be about removing local definitions of MIN() and MAX() freeing them up for simple implementations (usable as constant initialisers) and then using them in places where the compound statements in min() and max() can't be used.
Linus did all those changes - so he didn't have to wait for the maintainers to apply the changes (etc).
David
I mean the changes are most likely correct but also not valuable in anyway as bug fix.
Regards, Christian.
.../pci/hive_isp_css_include/math_support.h | 5 - fs/btrfs/misc.h | 2 - fs/btrfs/tree-checker.c | 2 +- fs/ext2/balloc.c | 2 - fs/ext4/ext4.h | 2 - fs/ufs/util.h | 6 - include/linux/compiler.h | 15 + include/linux/minmax.h | 267 ++++++++++++++---- include/linux/overflow.h | 1 - include/linux/trace_events.h | 2 - kernel/trace/preemptirq_delay_test.c | 2 - lib/btree.c | 1 - lib/decompress_unlzma.c | 2 + lib/logic_pio.c | 3 - lib/vsprintf.c | 2 +- lib/zstd/zstd_internal.h | 2 - mm/zsmalloc.c | 1 - net/ipv4/proc.c | 2 +- net/ipv6/proc.c | 2 +- net/netfilter/nf_nat_core.c | 6 +- net/tipc/core.h | 2 +- net/tipc/link.c | 10 +- 44 files changed, 306 insertions(+), 164 deletions(-)