Subject: linux-next: build failure after merge of the header_cleanup tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 18 Dec 2023 17:40:30 +1100

Hi all,

After merging the header_cleanup tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

In file included from include/linux/kernel.h:27,
                 from drivers/gpu/ipu-v3/ipu-dp.c:7:
include/drm/drm_color_mgmt.h: In function 'drm_color_lut_extract':
include/drm/drm_color_mgmt.h:45:46: error: implicit declaration of function 'mul_u32_u32' [-Werror=implicit-function-declaration]
   45 |                 return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(user_input, (1 << bit_precision) - 1),
      |                                              ^~~~~~~~~~~
include/linux/math.h:104:36: note: in definition of macro 'DIV_ROUND_CLOSEST_ULL'
  104 |         unsigned long long _tmp = (x) + (__d) / 2;      \
      |                                    ^
In file included from include/linux/time.h:6,
                 from include/linux/videodev2.h:59,
                 from include/video/imx-ipu-v3.h:16,
                 from drivers/gpu/ipu-v3/ipu-dp.c:14:
include/linux/math64.h: At top level:
include/linux/math64.h:155:19: error: conflicting types for 'mul_u32_u32'; have 'u64(u32,  u32)' {aka 'long long unsigned int(unsigned int,  unsigned int)'}
  155 | static inline u64 mul_u32_u32(u32 a, u32 b)
      |                   ^~~~~~~~~~~
include/drm/drm_color_mgmt.h:45:46: note: previous implicit declaration of 'mul_u32_u32' with type 'int()'
   45 |                 return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(user_input, (1 << bit_precision) - 1),
      |                                              ^~~~~~~~~~~
include/linux/math.h:104:36: note: in definition of macro 'DIV_ROUND_CLOSEST_ULL'
  104 |         unsigned long long _tmp = (x) + (__d) / 2;      \
      |                                    ^
cc1: some warnings being treated as errors
In file included from include/linux/kernel.h:27,
                 from drivers/gpu/drm/omapdrm/dss/dispc_coefs.c:7:
include/drm/drm_color_mgmt.h: In function 'drm_color_lut_extract':
include/drm/drm_color_mgmt.h:45:46: error: implicit declaration of function 'mul_u32_u32' [-Werror=implicit-function-declaration]
   45 |                 return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(user_input, (1 << bit_precision) - 1),
      |                                              ^~~~~~~~~~~
include/linux/math.h:104:36: note: in definition of macro 'DIV_ROUND_CLOSEST_ULL'
  104 |         unsigned long long _tmp = (x) + (__d) / 2;      \
      |                                    ^
In file included from include/linux/jiffies.h:7,
                 from include/linux/ktime.h:25,
                 from include/linux/timer.h:6,
                 from include/linux/workqueue.h:9,
                 from include/linux/mm_types.h:19,
                 from include/linux/mmzone.h:22,
                 from include/linux/gfp.h:7,
                 from include/linux/stackdepot.h:25,
                 from include/drm/drm_modeset_lock.h:28,
                 from include/drm/drm_crtc.h:30,
                 from drivers/gpu/drm/omapdrm/dss/omapdss.h:11,
                 from drivers/gpu/drm/omapdrm/dss/dispc_coefs.c:9:
include/linux/math64.h: At top level:
include/linux/math64.h:155:19: error: conflicting types for 'mul_u32_u32'; have 'u64(u32,  u32)' {aka 'long long unsigned int(unsigned int,  unsigned int)'}
  155 | static inline u64 mul_u32_u32(u32 a, u32 b)
      |                   ^~~~~~~~~~~
include/drm/drm_color_mgmt.h:45:46: note: previous implicit declaration of 'mul_u32_u32' with type 'int()'
   45 |                 return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(user_input, (1 << bit_precision) - 1),
      |                                              ^~~~~~~~~~~
include/linux/math.h:104:36: note: in definition of macro 'DIV_ROUND_CLOSEST_ULL'
  104 |         unsigned long long _tmp = (x) + (__d) / 2;      \
      |                                    ^
cc1: some warnings being treated as errors

I have dropped the header_cleanup tree for today.

-- 
Cheers,
Stephen Rothwell