Hi Zsolt, kernel test robot noticed the following build errors: [auto build test ERROR on linus/master] [also build test ERROR on v6.14-rc5 next-20250307] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Zsolt-Kajtar/Refactoring-the-fbcon-packed-pixel-drawing-routines/20250310-025619 base: linus/master patch link: https://lore.kernel.org/r/20250309184716.13732-2-soci%40c64.rulez.org patch subject: [PATCH RESEND 1/2] Refactoring the fbcon packed pixel drawing routines config: i386-buildonly-randconfig-002-20250310 (https://download.01.org/0day-ci/archive/20250310/202503100810.9iId3430-lkp@xxxxxxxxx/config) compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250310/202503100810.9iId3430-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202503100810.9iId3430-lkp@xxxxxxxxx/ All error/warnings (new ones prefixed by >>): In file included from drivers/video/fbdev/aty/mach64_cursor.c:9: >> drivers/video/fbdev/aty/../core/fb_draw.h:16:48: warning: declaration of 'struct fb_address' will not be visible outside of this function [-Wvisibility] 16 | static inline void fb_address_move_long(struct fb_address *adr, int offset) | ^ >> drivers/video/fbdev/aty/../core/fb_draw.h:18:5: error: incomplete definition of type 'struct fb_address' 18 | adr->address += offset * (BITS_PER_LONG / BITS_PER_BYTE); | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:16:48: note: forward declaration of 'struct fb_address' 16 | static inline void fb_address_move_long(struct fb_address *adr, int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:22:46: warning: declaration of 'struct fb_address' will not be visible outside of this function [-Wvisibility] 22 | static inline void fb_address_forward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:24:39: error: incomplete definition of type 'struct fb_address' 24 | unsigned int bits = (unsigned int)adr->bits + offset; | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:22:46: note: forward declaration of 'struct fb_address' 22 | static inline void fb_address_forward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:26:5: error: incomplete definition of type 'struct fb_address' 26 | adr->bits = bits & (BITS_PER_LONG - 1u); | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:22:46: note: forward declaration of 'struct fb_address' 22 | static inline void fb_address_forward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:27:5: error: incomplete definition of type 'struct fb_address' 27 | adr->address += (bits & ~(BITS_PER_LONG - 1u)) / BITS_PER_BYTE; | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:22:46: note: forward declaration of 'struct fb_address' 22 | static inline void fb_address_forward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:31:47: warning: declaration of 'struct fb_address' will not be visible outside of this function [-Wvisibility] 31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:33:16: error: incomplete definition of type 'struct fb_address' 33 | int bits = adr->bits - (int)offset; | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address' 31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:35:5: error: incomplete definition of type 'struct fb_address' 35 | adr->bits = bits & (BITS_PER_LONG - 1); | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address' 31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:37:6: error: incomplete definition of type 'struct fb_address' 37 | adr->address -= (adr->bits - bits) / BITS_PER_BYTE; | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address' 31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:37:23: error: incomplete definition of type 'struct fb_address' 37 | adr->address -= (adr->bits - bits) / BITS_PER_BYTE; | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address' 31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:39:6: error: incomplete definition of type 'struct fb_address' 39 | adr->address += (bits - adr->bits) / BITS_PER_BYTE; | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address' 31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:39:30: error: incomplete definition of type 'struct fb_address' 39 | adr->address += (bits - adr->bits) / BITS_PER_BYTE; | ~~~^ drivers/video/fbdev/aty/../core/fb_draw.h:31:47: note: forward declaration of 'struct fb_address' 31 | static inline void fb_address_backward(struct fb_address *adr, unsigned int offset) | ^ drivers/video/fbdev/aty/../core/fb_draw.h:50:34: warning: declaration of 'struct fb_address' will not be visible outside of this function [-Wvisibility] 50 | int offset, const struct fb_address *dst) | ^ >> drivers/video/fbdev/aty/../core/fb_draw.h:52:2: error: call to undeclared function 'fb_write_offset'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 52 | fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst); | ^ drivers/video/fbdev/aty/../core/fb_draw.h:52:2: note: did you mean 'fb_modify_offset'? drivers/video/fbdev/aty/../core/fb_draw.h:49:20: note: 'fb_modify_offset' declared here 49 | static inline void fb_modify_offset(unsigned long val, unsigned long mask, | ^ 50 | int offset, const struct fb_address *dst) 51 | { 52 | fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst); | ~~~~~~~~~~~~~~~ | fb_modify_offset >> drivers/video/fbdev/aty/../core/fb_draw.h:52:31: error: call to undeclared function 'fb_read_offset'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 52 | fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst); | ^ >> drivers/video/fbdev/aty/mach64_cursor.c:184:9: error: call to undeclared function 'comp'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 184 | l = comp(l, 0xaaaa, | ^ 4 warnings and 13 errors generated. vim +18 drivers/video/fbdev/aty/../core/fb_draw.h 14 15 /* move the address pointer by the number of words */ > 16 static inline void fb_address_move_long(struct fb_address *adr, int offset) 17 { > 18 adr->address += offset * (BITS_PER_LONG / BITS_PER_BYTE); 19 } 20 21 /* move the address pointer forward with the number of bits */ 22 static inline void fb_address_forward(struct fb_address *adr, unsigned int offset) 23 { 24 unsigned int bits = (unsigned int)adr->bits + offset; 25 26 adr->bits = bits & (BITS_PER_LONG - 1u); 27 adr->address += (bits & ~(BITS_PER_LONG - 1u)) / BITS_PER_BYTE; 28 } 29 30 /* move the address pointer backwards with the number of bits */ 31 static inline void fb_address_backward(struct fb_address *adr, unsigned int offset) 32 { 33 int bits = adr->bits - (int)offset; 34 35 adr->bits = bits & (BITS_PER_LONG - 1); 36 if (bits < 0) 37 adr->address -= (adr->bits - bits) / BITS_PER_BYTE; 38 else 39 adr->address += (bits - adr->bits) / BITS_PER_BYTE; 40 } 41 42 /* compose pixels based on mask */ 43 static inline unsigned long fb_comp(unsigned long set, unsigned long unset, unsigned long mask) 44 { 45 return ((set ^ unset) & mask) ^ unset; 46 } 47 48 /* framebuffer read-modify-write access for replacing bits in the mask */ 49 static inline void fb_modify_offset(unsigned long val, unsigned long mask, 50 int offset, const struct fb_address *dst) 51 { > 52 fb_write_offset(fb_comp(val, fb_read_offset(offset, dst), mask), offset, dst); 53 } 54 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki