All of lore.kernel.org
 help / color / mirror / Atom feed
* [deller-fbdev:for-next 13/15] drivers/video/fbdev/core/fb_imageblit.h:297 fast_imageblit() error: uninitialized symbol 'j'.
@ 2025-02-08 15:43 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-02-08 15:43 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Zsolt Kajtar <soci@c64.rulez.org>
CC: Helge Deller <deller@gmx.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev.git for-next
head:   720fcad9d12e92368192689a90e2b932a1e44406
commit: d244899de08c324fdcf4dbed95ecb64ea292ff61 [13/15] fbdev: core: Use generic imageblit for as cfb_imageblit
:::::: branch date: 32 hours ago
:::::: commit date: 32 hours ago
config: arm64-randconfig-r072-20250208 (https://download.01.org/0day-ci/archive/20250208/202502082357.cBJ9n0lf-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.2.0

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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202502082357.cBJ9n0lf-lkp@intel.com/

smatch warnings:
drivers/video/fbdev/core/fb_imageblit.h:297 fast_imageblit() error: uninitialized symbol 'j'.

vim +/j +297 drivers/video/fbdev/core/fb_imageblit.h

d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  199  
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  200  /*
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  201   * fast_imageblit - optimized monochrome color expansion
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  202   *
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  203   * Only if:  bits_per_pixel == 8, 16, or 32
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  204   *           image->width is divisible by pixel/dword (ppw);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  205   *           fix->line_legth is divisible by 4;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  206   *           beginning and end of a scanline is dword aligned
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  207   */
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  208  static inline void fast_imageblit(const struct fb_image *image, struct fb_info *p,
24d36dc5bee2bf Zsolt Kajtar 2025-02-07  209                                    u8 FB_MEM *dst1, u32 fgcolor,
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  210                                    u32 bgcolor)
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  211  {
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  212          u32 fgx = fgcolor, bgx = bgcolor, bpp = p->var.bits_per_pixel;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  213          u32 ppw = 32/bpp, spitch = (image->width + 7)/8;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  214          u32 bit_mask, eorx, shift;
24d36dc5bee2bf Zsolt Kajtar 2025-02-07  215          const u8 *s = image->data, *src;
24d36dc5bee2bf Zsolt Kajtar 2025-02-07  216          u32 FB_MEM *dst;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  217          const u32 *tab = NULL;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  218          size_t tablen;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  219          u32 colortab[16];
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  220          int i, j, k;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  221  
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  222          switch (bpp) {
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  223          case 8:
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  224                  tab = fb_be_math(p) ? cfb_tab8_be : cfb_tab8_le;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  225                  tablen = 16;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  226                  break;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  227          case 16:
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  228                  tab = fb_be_math(p) ? cfb_tab16_be : cfb_tab16_le;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  229                  tablen = 4;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  230                  break;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  231          case 32:
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  232                  tab = cfb_tab32;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  233                  tablen = 2;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  234                  break;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  235          default:
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  236                  return;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  237          }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  238  
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  239          for (i = ppw-1; i--; ) {
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  240                  fgx <<= bpp;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  241                  bgx <<= bpp;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  242                  fgx |= fgcolor;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  243                  bgx |= bgcolor;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  244          }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  245  
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  246          bit_mask = (1 << ppw) - 1;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  247          eorx = fgx ^ bgx;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  248          k = image->width/ppw;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  249  
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  250          for (i = 0; i < tablen; ++i)
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  251                  colortab[i] = (tab[i] & eorx) ^ bgx;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  252  
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  253          for (i = image->height; i--; ) {
24d36dc5bee2bf Zsolt Kajtar 2025-02-07  254                  dst = (u32 FB_MEM *)dst1;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  255                  shift = 8;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  256                  src = s;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  257  
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  258                  /*
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  259                   * Manually unroll the per-line copying loop for better
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  260                   * performance. This works until we processed the last
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  261                   * completely filled source byte (inclusive).
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  262                   */
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  263                  switch (ppw) {
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  264                  case 4: /* 8 bpp */
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  265                          for (j = k; j >= 2; j -= 2, ++src) {
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  266                                  FB_WRITEL(colortab[(*src >> 4) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  267                                  FB_WRITEL(colortab[(*src >> 0) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  268                          }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  269                          break;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  270                  case 2: /* 16 bpp */
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  271                          for (j = k; j >= 4; j -= 4, ++src) {
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  272                                  FB_WRITEL(colortab[(*src >> 6) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  273                                  FB_WRITEL(colortab[(*src >> 4) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  274                                  FB_WRITEL(colortab[(*src >> 2) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  275                                  FB_WRITEL(colortab[(*src >> 0) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  276                          }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  277                          break;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  278                  case 1: /* 32 bpp */
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  279                          for (j = k; j >= 8; j -= 8, ++src) {
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  280                                  FB_WRITEL(colortab[(*src >> 7) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  281                                  FB_WRITEL(colortab[(*src >> 6) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  282                                  FB_WRITEL(colortab[(*src >> 5) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  283                                  FB_WRITEL(colortab[(*src >> 4) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  284                                  FB_WRITEL(colortab[(*src >> 3) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  285                                  FB_WRITEL(colortab[(*src >> 2) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  286                                  FB_WRITEL(colortab[(*src >> 1) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  287                                  FB_WRITEL(colortab[(*src >> 0) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  288                          }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  289                          break;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  290                  }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  291  
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  292                  /*
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  293                   * For image widths that are not a multiple of 8, there
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  294                   * are trailing pixels left on the current line. Print
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  295                   * them as well.
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  296                   */
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07 @297                  for (; j--; ) {
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  298                          shift -= ppw;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  299                          FB_WRITEL(colortab[(*src >> shift) & bit_mask], dst++);
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  300                          if (!shift) {
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  301                                  shift = 8;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  302                                  ++src;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  303                          }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  304                  }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  305  
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  306                  dst1 += p->fix.line_length;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  307                  s += spitch;
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  308          }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  309  }
d933e6d9f4eb8e Zsolt Kajtar 2025-02-07  310  

:::::: The code at line 297 was first introduced by commit
:::::: d933e6d9f4eb8e4a9cabd14371c2aceefe90032a fbdev: core: Copy cfbimgblt to fb_imageblit

:::::: TO: Zsolt Kajtar <soci@c64.rulez.org>
:::::: CC: Helge Deller <deller@gmx.de>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-02-08 15:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-08 15:43 [deller-fbdev:for-next 13/15] drivers/video/fbdev/core/fb_imageblit.h:297 fast_imageblit() error: uninitialized symbol 'j' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.