Hi, On Mon, Nov 18, 2024 at 07:13:31PM +0000, David Laight wrote: > Use BUILD_BUG_ON_MSG(statically_true(ulo > uhi), ...) for the sanity > check of the bounds in clamp(). > Gives better error coverage and one less expansion of the arguments. > > Signed-off-by: David Laight <david.laight@xxxxxxxxxx> This patch triggers a build error when trying to build parisc:allmodconfig. See error message and bisect log below. I don't think there is anything wrong with the patch. The underlying problem seems to be that parisc:allmodconfig enables CONFIG_DRM_XE which tries to build the affected file even though CONFIG_DRM_I915 is not enabled/supported on parisc. Copying XE maintainers for feedback/advice. Thanks, Guenter --- Building parisc:allmodconfig ... failed -------------- Error log: In file included from <command-line>: drivers/gpu/drm/i915/display/intel_backlight.c: In function 'scale': include/linux/compiler_types.h:542:45: error: call to '__compiletime_assert_415' declared with attribute error: clamp() low limit source_min greater than high limit source_max 542 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^ include/linux/compiler_types.h:523:25: note: in definition of macro '__compiletime_assert' 523 | prefix ## suffix(); \ | ^~~~~~ include/linux/compiler_types.h:542:9: note: in expansion of macro '_compiletime_assert' 542 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) | ^~~~~~~~~~~~~~~~~~ include/linux/minmax.h:188:9: note: in expansion of macro 'BUILD_BUG_ON_MSG' 188 | BUILD_BUG_ON_MSG(statically_true(ulo > uhi), \ | ^~~~~~~~~~~~~~~~ include/linux/minmax.h:195:9: note: in expansion of macro '__clamp_once' 195 | __clamp_once(type, val, lo, hi, __UNIQUE_ID(v_), __UNIQUE_ID(l_), __UNIQUE_ID(h_)) | ^~~~~~~~~~~~ include/linux/minmax.h:206:28: note: in expansion of macro '__careful_clamp' 206 | #define clamp(val, lo, hi) __careful_clamp(__auto_type, val, lo, hi) | ^~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_backlight.c:48:22: note: in expansion of macro 'clamp' 48 | source_val = clamp(source_val, source_min, source_max); | ^~~~~ --- # bad: [0907e7fb35756464aa34c35d6abb02998418164b] Add linux-next specific files for 20250117 # good: [5bc55a333a2f7316b58edc7573e8e893f7acb532] Linux 6.13-rc7 git bisect start 'HEAD' 'v6.13-rc7' # bad: [195cedf4deacf84167c32b866ceac1cf4a16df15] Merge branch 'main' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git git bisect bad 195cedf4deacf84167c32b866ceac1cf4a16df15 # bad: [e8c0711b153b0db806410d8b31ed23b590f4eab4] Merge branch 'xtensa-for-next' of git://github.com/jcmvbkbc/linux-xtensa.git git bisect bad e8c0711b153b0db806410d8b31ed23b590f4eab4 # bad: [81d45722d699e594c66c150c8f7a0ec2e2bc9be6] Merge branch 'for-next/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git git bisect bad 81d45722d699e594c66c150c8f7a0ec2e2bc9be6 # bad: [7acb844a672defb15cf202a501815ec22c68c800] foo git bisect bad 7acb844a672defb15cf202a501815ec22c68c800 # good: [fb2368075b135f174264071b851330649d55f9d0] mm/damon/core: add damos_filter->allow field git bisect good fb2368075b135f174264071b851330649d55f9d0 # bad: [fc83c501e385753c90db7316faf9fd4158caaa96] minmax.h: remove some #defines that are only expanded once git bisect bad fc83c501e385753c90db7316faf9fd4158caaa96 # good: [b04d305df1171448df5e87802c4d1f1022cc5784] ocfs2: use a folio in ocfs2_map_and_dirty_page() git bisect good b04d305df1171448df5e87802c4d1f1022cc5784 # good: [7e01619507058f90ab603acec482951f3c452aaa] kthread: correct comments before kthread_queue_work() git bisect good 7e01619507058f90ab603acec482951f3c452aaa # good: [21b510a64c223707caa6db6176128779f0806a73] nilfs2: correct return value kernel-doc descriptions for ioctl functions git bisect good 21b510a64c223707caa6db6176128779f0806a73 # good: [6afb87f23458f2d4e4334ee5a4efb8b0d07af68b] nilfs2: handle errors that nilfs_prepare_chunk() may return git bisect good 6afb87f23458f2d4e4334ee5a4efb8b0d07af68b # good: [8f6d46fed0bad163e5146fea1fdff150039235b2] minmax.h: reduce the #define expansion of min(), max() and clamp() git bisect good 8f6d46fed0bad163e5146fea1fdff150039235b2 # bad: [7a70c678548d71e609b95dbddf2d411a02d13b54] minmax.h: move all the clamp() definitions after the min/max() ones git bisect bad 7a70c678548d71e609b95dbddf2d411a02d13b54 # bad: [37f375aab0c585388b90d1af6968454fc2769cb9] minmax.h: use BUILD_BUG_ON_MSG() for the lo < hi test in clamp() git bisect bad 37f375aab0c585388b90d1af6968454fc2769cb9 # first bad commit: [37f375aab0c585388b90d1af6968454fc2769cb9] minmax.h: use BUILD_BUG_ON_MSG() for the lo < hi test in clamp()