Hi Bartlomiej, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.2-rc2 next-20190524] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Bartlomiej-Zolnierkiewicz/video-fbdev-pvr2fb-remove-function-prototypes/20190524-145925 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> smatch warnings: drivers/video/fbdev/pvr2fb.c:467 pvr2fb_check_var() warn: unsigned 'var->xoffset' is never less than zero. drivers/video/fbdev/pvr2fb.c:467 pvr2fb_check_var() warn: unsigned 'var->yoffset' is never less than zero. vim +467 drivers/video/fbdev/pvr2fb.c ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 430 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 431 static int pvr2fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 432 { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 433 struct pvr2fb_par *par = (struct pvr2fb_par *)info->par; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 434 unsigned int vtotal, hsync_total; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 435 unsigned long line_length; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 436 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 437 if (var->pixclock != TV_CLK && var->pixclock != VGA_CLK) { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 438 pr_debug("Invalid pixclock value %d\n", var->pixclock); ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 439 return -EINVAL; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 440 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 441 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 442 if (var->xres < 320) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 443 var->xres = 320; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 444 if (var->yres < 240) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 445 var->yres = 240; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 446 if (var->xres_virtual < var->xres) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 447 var->xres_virtual = var->xres; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 448 if (var->yres_virtual < var->yres) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 449 var->yres_virtual = var->yres; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 450 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 451 if (var->bits_per_pixel <= 16) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 452 var->bits_per_pixel = 16; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 453 else if (var->bits_per_pixel <= 24) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 454 var->bits_per_pixel = 24; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 455 else if (var->bits_per_pixel <= 32) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 456 var->bits_per_pixel = 32; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 457 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 458 set_color_bitfields(var); ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 459 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 460 if (var->vmode & FB_VMODE_YWRAP) { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 461 if (var->xoffset || var->yoffset < 0 || ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 462 var->yoffset >= var->yres_virtual) { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 463 var->xoffset = var->yoffset = 0; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 464 } else { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 465 if (var->xoffset > var->xres_virtual - var->xres || ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 466 var->yoffset > var->yres_virtual - var->yres || ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 @467 var->xoffset < 0 || var->yoffset < 0) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 468 var->xoffset = var->yoffset = 0; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 469 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 470 } else { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 471 var->xoffset = var->yoffset = 0; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 472 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 473 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 474 /* ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 475 * XXX: Need to be more creative with this (i.e. allow doublecan for ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 476 * PAL/NTSC output). ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 477 */ ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 478 if (var->yres < 480 && video_output == VO_VGA) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 479 var->vmode |= FB_VMODE_DOUBLE; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 480 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 481 if (video_output != VO_VGA) { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 482 var->sync |= FB_SYNC_BROADCAST; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 483 var->vmode |= FB_VMODE_INTERLACED; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 484 } else { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 485 var->sync &= ~FB_SYNC_BROADCAST; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 486 var->vmode &= ~FB_VMODE_INTERLACED; fcb1fec7 drivers/video/pvr2fb.c Paul Mundt 2008-03-06 487 var->vmode |= FB_VMODE_NONINTERLACED; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 488 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 489 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 490 if ((var->activate & FB_ACTIVATE_MASK) != FB_ACTIVATE_TEST) { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 491 var->right_margin = par->borderstop_h - ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 492 (par->diwstart_h + var->xres); ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 493 var->left_margin = par->diwstart_h - par->borderstart_h; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 494 var->hsync_len = par->borderstart_h + ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 495 (par->hsync_total - par->borderstop_h); ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 496 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 497 var->upper_margin = par->diwstart_v - par->borderstart_v; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 498 var->lower_margin = par->borderstop_v - ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 499 (par->diwstart_v + var->yres); ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 500 var->vsync_len = par->borderstop_v + ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 501 (par->vsync_total - par->borderstop_v); ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 502 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 503 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 504 hsync_total = var->left_margin + var->xres + var->right_margin + ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 505 var->hsync_len; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 506 vtotal = var->upper_margin + var->yres + var->lower_margin + ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 507 var->vsync_len; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 508 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 509 if (var->sync & FB_SYNC_BROADCAST) { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 510 if (var->vmode & FB_VMODE_INTERLACED) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 511 vtotal /= 2; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 512 if (vtotal > (PAL_VTOTAL + NTSC_VTOTAL)/2) { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 513 /* PAL video output */ ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 514 /* XXX: Should be using a range here ... ? */ ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 515 if (hsync_total != PAL_HTOTAL) { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 516 pr_debug("invalid hsync total for PAL\n"); ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 517 return -EINVAL; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 518 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 519 } else { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 520 /* NTSC video output */ ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 521 if (hsync_total != NTSC_HTOTAL) { ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 522 pr_debug("invalid hsync total for NTSC\n"); ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 523 return -EINVAL; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 524 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 525 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 526 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 527 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 528 /* Check memory sizes */ ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 529 line_length = get_line_length(var->xres_virtual, var->bits_per_pixel); ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 530 if (line_length * var->yres_virtual > info->fix.smem_len) ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 531 return -ENOMEM; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 532 ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 533 return 0; ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 534 } ^1da177e drivers/video/pvr2fb.c Linus Torvalds 2005-04-16 535 :::::: The code at line 467 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx> :::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel