All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH 1/2] fbdev: Fix sys_imageblit() for arbitrary image widths
Date: Mon, 14 Mar 2022 10:19:09 +0800	[thread overview]
Message-ID: <202203141008.L3JTRr7U-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 14262 bytes --]

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
In-Reply-To: <20220313192952.12058-2-tzimmermann@suse.de>
References: <20220313192952.12058-2-tzimmermann@suse.de>
TO: Thomas Zimmermann <tzimmermann@suse.de>
TO: daniel(a)ffwll.ch
TO: deller(a)gmx.de
TO: m.szyprowski(a)samsung.com
TO: geert(a)linux-m68k.org
TO: javierm(a)redhat.com
TO: sam(a)ravnborg.org
CC: linux-fbdev(a)vger.kernel.org
CC: dri-devel(a)lists.freedesktop.org
CC: Thomas Zimmermann <tzimmermann@suse.de>

Hi Thomas,

I love your patch! Perhaps something to improve:

[auto build test WARNING on next-20220310]
[cannot apply to linus/master v5.17-rc7 v5.17-rc6 v5.17-rc5 v5.17-rc8]
[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]

url:    https://github.com/0day-ci/linux/commits/Thomas-Zimmermann/fbdev-Fix-image-blitting-for-arbitrary-image-widths/20220314-033209
base:    71941773e143369a73c9c4a3b62fbb60736a1182
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20220314/202203141008.L3JTRr7U-lkp(a)intel.com/config)
compiler: gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/video/fbdev/core/sysimgblt.c:274 fast_imageblit() error: uninitialized symbol 'j'.

vim +/j +274 drivers/video/fbdev/core/sysimgblt.c

68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  177  
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  178  /*
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  179   * fast_imageblit - optimized monochrome color expansion
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  180   *
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  181   * Only if:  bits_per_pixel == 8, 16, or 32
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  182   *           image->width is divisible by pixel/dword (ppw);
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  183   *           fix->line_legth is divisible by 4;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  184   *           beginning and end of a scanline is dword aligned
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  185   */
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  186  static void fast_imageblit(const struct fb_image *image, struct fb_info *p,
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  187  				  void *dst1, u32 fgcolor, u32 bgcolor)
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  188  {
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  189  	u32 fgx = fgcolor, bgx = bgcolor, bpp = p->var.bits_per_pixel;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  190  	u32 ppw = 32/bpp, spitch = (image->width + 7)/8;
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  191  	u32 bit_mask, eorx, shift;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  192  	const char *s = image->data, *src;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  193  	u32 *dst;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  194  	const u32 *tab;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  195  	size_t tablen;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  196  	u32 colortab[16];
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  197  	int i, j, k;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  198  
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  199  	switch (bpp) {
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  200  	case 8:
e4c690e061b909 drivers/video/sysimgblt.c            Anton Vorontsov    2008-04-28  201  		tab = fb_be_math(p) ? cfb_tab8_be : cfb_tab8_le;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  202  		tablen = 16;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  203  		break;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  204  	case 16:
e4c690e061b909 drivers/video/sysimgblt.c            Anton Vorontsov    2008-04-28  205  		tab = fb_be_math(p) ? cfb_tab16_be : cfb_tab16_le;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  206  		tablen = 4;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  207  		break;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  208  	case 32:
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  209  		tab = cfb_tab32;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  210  		tablen = 2;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  211  		break;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  212  	default:
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  213  		return;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  214  	}
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  215  
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  216  	for (i = ppw-1; i--; ) {
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  217  		fgx <<= bpp;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  218  		bgx <<= bpp;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  219  		fgx |= fgcolor;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  220  		bgx |= bgcolor;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  221  	}
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  222  
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  223  	bit_mask = (1 << ppw) - 1;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  224  	eorx = fgx ^ bgx;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  225  	k = image->width/ppw;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  226  
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  227  	for (i = 0; i < tablen; ++i)
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  228  		colortab[i] = (tab[i] & eorx) ^ bgx;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  229  
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  230  	for (i = image->height; i--; ) {
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  231  		dst = dst1;
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  232  		shift = 8;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  233  		src = s;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  234  
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  235  		/*
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  236  		 * Manually unroll the per-line copying loop for better
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  237  		 * performance. This works until we processed the last
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  238  		 * completely filled source byte (inclusive).
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  239  		 */
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  240  		switch (ppw) {
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  241  		case 4: /* 8 bpp */
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  242  			for (j = k; j >= 2; j -= 2, ++src) {
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  243  				*dst++ = colortab[(*src >> 4) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  244  				*dst++ = colortab[(*src >> 0) & bit_mask];
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  245  			}
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  246  			break;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  247  		case 2: /* 16 bpp */
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  248  			for (j = k; j >= 4; j -= 4, ++src) {
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  249  				*dst++ = colortab[(*src >> 6) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  250  				*dst++ = colortab[(*src >> 4) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  251  				*dst++ = colortab[(*src >> 2) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  252  				*dst++ = colortab[(*src >> 0) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  253  			}
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  254  			break;
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  255  		case 1: /* 32 bpp */
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  256  			for (j = k; j >= 8; j -= 8, ++src) {
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  257  				*dst++ = colortab[(*src >> 7) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  258  				*dst++ = colortab[(*src >> 6) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  259  				*dst++ = colortab[(*src >> 5) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  260  				*dst++ = colortab[(*src >> 4) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  261  				*dst++ = colortab[(*src >> 3) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  262  				*dst++ = colortab[(*src >> 2) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  263  				*dst++ = colortab[(*src >> 1) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  264  				*dst++ = colortab[(*src >> 0) & bit_mask];
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  265  			}
6f29e04938bf50 drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-02-23  266  			break;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  267  		}
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  268  
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  269  		/*
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  270  		 * For image widths that are not a multiple of 8, there
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  271  		 * are trailing pixels left on the current line. Print
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  272  		 * them as well.
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  273  		 */
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13 @274  		for (; j--; ) {
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  275  			shift -= ppw;
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  276  			*dst++ = colortab[(*src >> shift) & bit_mask];
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  277  			if (!shift) {
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  278  				shift = 8;
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  279  				++src;
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  280  			}
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  281  		}
34e093954c6d2a drivers/video/fbdev/core/sysimgblt.c Thomas Zimmermann  2022-03-13  282  
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  283  		dst1 += p->fix.line_length;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  284  		s += spitch;
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  285  	}
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  286  }
68648ed1f58d98 drivers/video/sysimgblt.c            Antonino A. Daplas 2007-05-08  287  

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2022-03-14  2:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-14  2:19 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-03-14 14:44 [PATCH 1/2] fbdev: Fix sys_imageblit() for arbitrary image widths kernel test robot
2022-03-13 19:29 [PATCH 0/2] fbdev: Fix image blitting " Thomas Zimmermann
2022-03-13 19:29 ` [PATCH 1/2] fbdev: Fix sys_imageblit() " Thomas Zimmermann
2022-03-13 19:29   ` Thomas Zimmermann
2022-03-14 20:56   ` Geert Uytterhoeven
2022-03-14 20:56     ` Geert Uytterhoeven
2022-03-17 11:20   ` Javier Martinez Canillas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202203141008.L3JTRr7U-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.