This is a note to let you know that I've just added the patch titled
minmax: don't use max() in situations that want a C constant expression to the 6.6-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: minmax-don-t-use-max-in-situations-that-want-a-c-constant-expression.patch and it can be found in the queue-6.6 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <sta...@vger.kernel.org> know about it. >From linux-staging+bounces-34541-greg=kroah....@lists.linux.dev Mon Sep 22 >12:38:18 2025 From: Eliav Farber <farb...@amazon.com> Date: Mon, 22 Sep 2025 10:32:32 +0000 Subject: minmax: don't use max() in situations that want a C constant expression To: <rich...@nod.at>, <anton.iva...@cambridgegreys.com>, <johan...@sipsolutions.net>, <dave.han...@linux.intel.com>, <l...@kernel.org>, <pet...@infradead.org>, <t...@linutronix.de>, <mi...@redhat.com>, <b...@alien8.de>, <x...@kernel.org>, <h...@zytor.com>, <tony.l...@intel.com>, <qiuxu.z...@intel.com>, <james.mo...@arm.com>, <mche...@kernel.org>, <r...@kernel.org>, <harry.wentl...@amd.com>, <sunpeng...@amd.com>, <rodrigo.sique...@amd.com>, <alexander.deuc...@amd.com>, <christian.koe...@amd.com>, <xinhui....@amd.com>, <airl...@gmail.com>, <dan...@ffwll.ch>, <evan.q...@amd.com>, <maarten.lankho...@linux.intel.com>, <mrip...@kernel.org>, <tzimmerm...@suse.de>, <jdelv...@suse.com>, <li...@roeck-us.net>, <linus.wall...@linaro.org>, <dmitry.torok...@gmail.com>, <w...@csie.org>, <jernej.skra...@gmail.com>, <sam...@sholland.org>, <a...@redhat.com>, <snit...@kernel.org>, <dm-de...@lists.linux.dev>, <mailhol.vinc...@wanadoo.fr>, <w...@grandegger.com>, <m...@pengutronix.de>, <da...@davemloft.net>, <edu ma...@google.com>, <k...@kernel.org>, <pab...@redhat.com>, <alexandre.tor...@foss.st.com>, <joab...@synopsys.com>, <mcoquelin.st...@gmail.com>, <krzysztof.kozlow...@linaro.org>, <malat...@linux.it>, <hdego...@redhat.com>, <ilpo.jarvi...@linux.intel.com>, <markgr...@kernel.org>, <artur.paszkiew...@intel.com>, <j...@linux.ibm.com>, <martin.peter...@oracle.com>, <sakari.ai...@linux.intel.com>, <gre...@linuxfoundation.org>, <c...@fb.com>, <jo...@toxicpanda.com>, <dste...@suse.com>, <luc.vanoostenr...@gmail.com>, <rost...@goodmis.org>, <mhira...@kernel.org>, <pmla...@suse.com>, <andriy.shevche...@linux.intel.com>, <li...@rasmusvillemoes.dk>, <senozhat...@chromium.org>, <minc...@kernel.org>, <a...@linux-foundation.org>, <dsah...@kernel.org>, <sh...@kernel.org>, <keesc...@chromium.org>, <w...@chromium.org>, <farb...@amazon.com>, <david.lai...@aculab.com>, <a...@kernel.org>, <linux...@lists.infradead.org>, <linux-ker...@vger.kernel.org>, <linux-e...@vger.kernel.org>, <amd-gfx@lists.freedeskto p.org>, <dri-de...@lists.freedesktop.org>, <linux-hw...@vger.kernel.org>, <linux-in...@vger.kernel.org>, <linux-arm-ker...@lists.infradead.org>, <linux-su...@lists.linux.dev>, <linux-me...@vger.kernel.org>, <linux-...@vger.kernel.org>, <net...@vger.kernel.org>, <linux-st...@st-md-mailman.stormreply.com>, <platform-driver-...@vger.kernel.org>, <linux-s...@vger.kernel.org>, <linux-stag...@lists.linux.dev>, <linux-bt...@vger.kernel.org>, <linux-spa...@vger.kernel.org>, <linux-trace-ker...@vger.kernel.org>, <linux...@kvack.org>, <linux-kselft...@vger.kernel.org>, <b...@vger.kernel.org>, <sta...@vger.kernel.org> Cc: Linus Torvalds <torva...@linux-foundation.org>, David Laight <david.lai...@aculab.com>, Lorenzo Stoakes <lorenzo.stoa...@oracle.com> Message-ID: <20250922103241.16213-7-farb...@amazon.com> From: Linus Torvalds <torva...@linux-foundation.org> [ Upstream commit cb04e8b1d2f24c4c2c92f7b7529031fc35a16fed ] We only had a couple of array[] declarations, and changing them to just use 'MAX()' instead of 'max()' fixes the issue. This will allow us to simplify our min/max macros enormously, since they can now unconditionally use temporary variables to avoid using the argument values multiple times. Cc: David Laight <david.lai...@aculab.com> Cc: Lorenzo Stoakes <lorenzo.stoa...@oracle.com> Signed-off-by: Linus Torvalds <torva...@linux-foundation.org> Signed-off-by: Eliav Farber <farb...@amazon.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> --- drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 2 +- drivers/input/touchscreen/cyttsp4_core.c | 2 +- drivers/irqchip/irq-sun6i-r.c | 2 +- drivers/net/can/usb/etas_es58x/es58x_devlink.c | 2 +- fs/btrfs/tree-checker.c | 2 +- lib/vsprintf.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) --- a/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c @@ -708,7 +708,7 @@ static const char *smu_get_feature_name( size_t smu_cmn_get_pp_feature_mask(struct smu_context *smu, char *buf) { - int8_t sort_feature[max(SMU_FEATURE_COUNT, SMU_FEATURE_MAX)]; + int8_t sort_feature[MAX(SMU_FEATURE_COUNT, SMU_FEATURE_MAX)]; uint64_t feature_mask; int i, feature_index; uint32_t count = 0; --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -871,7 +871,7 @@ static void cyttsp4_get_mt_touches(struc struct cyttsp4_touch tch; int sig; int i, j, t = 0; - int ids[max(CY_TMA1036_MAX_TCH, CY_TMA4XX_MAX_TCH)]; + int ids[MAX(CY_TMA1036_MAX_TCH, CY_TMA4XX_MAX_TCH)]; memset(ids, 0, si->si_ofs.tch_abs[CY_TCH_T].max * sizeof(int)); for (i = 0; i < num_cur_tch; i++) { --- a/drivers/irqchip/irq-sun6i-r.c +++ b/drivers/irqchip/irq-sun6i-r.c @@ -270,7 +270,7 @@ static const struct irq_domain_ops sun6i static int sun6i_r_intc_suspend(void) { - u32 buf[BITS_TO_U32(max(SUN6I_NR_TOP_LEVEL_IRQS, SUN6I_NR_MUX_BITS))]; + u32 buf[BITS_TO_U32(MAX(SUN6I_NR_TOP_LEVEL_IRQS, SUN6I_NR_MUX_BITS))]; int i; /* Wake IRQs are enabled during system sleep and shutdown. */ --- a/drivers/net/can/usb/etas_es58x/es58x_devlink.c +++ b/drivers/net/can/usb/etas_es58x/es58x_devlink.c @@ -215,7 +215,7 @@ static int es58x_devlink_info_get(struct struct es58x_sw_version *fw_ver = &es58x_dev->firmware_version; struct es58x_sw_version *bl_ver = &es58x_dev->bootloader_version; struct es58x_hw_revision *hw_rev = &es58x_dev->hardware_revision; - char buf[max(sizeof("xx.xx.xx"), sizeof("axxx/xxx"))]; + char buf[MAX(sizeof("xx.xx.xx"), sizeof("axxx/xxx"))]; int ret = 0; if (es58x_sw_version_is_valid(fw_ver)) { --- a/fs/btrfs/tree-checker.c +++ b/fs/btrfs/tree-checker.c @@ -614,7 +614,7 @@ static int check_dir_item(struct extent_ */ if (key->type == BTRFS_DIR_ITEM_KEY || key->type == BTRFS_XATTR_ITEM_KEY) { - char namebuf[max(BTRFS_NAME_LEN, XATTR_NAME_MAX)]; + char namebuf[MAX(BTRFS_NAME_LEN, XATTR_NAME_MAX)]; read_extent_buffer(leaf, namebuf, (unsigned long)(di + 1), name_len); --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -1079,7 +1079,7 @@ char *resource_string(char *buf, char *e #define FLAG_BUF_SIZE (2 * sizeof(res->flags)) #define DECODED_BUF_SIZE sizeof("[mem - 64bit pref window disabled]") #define RAW_BUF_SIZE sizeof("[mem - flags 0x]") - char sym[max(2*RSRC_BUF_SIZE + DECODED_BUF_SIZE, + char sym[MAX(2*RSRC_BUF_SIZE + DECODED_BUF_SIZE, 2*RSRC_BUF_SIZE + FLAG_BUF_SIZE + RAW_BUF_SIZE)]; char *p = sym, *pend = sym + sizeof(sym); Patches currently in stable-queue which might be from farb...@amazon.com are queue-6.6/minmax-don-t-use-max-in-situations-that-want-a-c-constant-expression.patch queue-6.6/minmax-make-generic-min-and-max-macros-available-everywhere.patch queue-6.6/minmax-fix-up-min3-and-max3-too.patch queue-6.6/minmax-add-a-few-more-min_t-max_t-users.patch queue-6.6/minmax-improve-macro-expansion-and-type-checking.patch queue-6.6/minmax-avoid-overly-complicated-constant-expressions-in-vm-code.patch queue-6.6/minmax-simplify-min-max-clamp-implementation.patch queue-6.6/minmax-simplify-and-clarify-min_t-max_t-implementation.patch