From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 06/17] fortify: Detect struct member overflows in memcpy() at compile-time
Date: Wed, 15 Dec 2021 00:32:34 +0800 [thread overview]
Message-ID: <202112150059.yHZrJY0I-lkp@intel.com> (raw)
In-Reply-To: <20211213223331.135412-7-keescook@chromium.org>
[-- Attachment #1: Type: text/plain, Size: 29532 bytes --]
Hi Kees,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.16-rc5 next-20211213]
[cannot apply to rdma/for-next axboe-block/for-next kvm/queue tip/x86/core mkp-scsi/for-next jejb-scsi/for-next]
[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/Kees-Cook/Enable-strict-compile-time-memcpy-fortify-checks/20211214-064002
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git aa50faff4416c869b52dff68a937c84d29e12f4b
config: i386-randconfig-s002-20211214 (https://download.01.org/0day-ci/archive/20211215/202112150059.yHZrJY0I-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/80c8d2aae95aae6bd09e3ef84b74d0afe631abae
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Kees-Cook/Enable-strict-compile-time-memcpy-fortify-checks/20211214-064002
git checkout 80c8d2aae95aae6bd09e3ef84b74d0afe631abae
# save the config file to linux build tree
mkdir build_dir
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash drivers/video/fbdev/geode/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *gp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: got void [noderef] __iomem *gp_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *gp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: got void [noderef] __iomem *gp_regs
drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *gp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:602:9: sparse: got void [noderef] __iomem *gp_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *dc_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: got void [noderef] __iomem *dc_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *dc_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: got void [noderef] __iomem *dc_regs
drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *dc_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:603:9: sparse: got void [noderef] __iomem *dc_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *vp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: got void [noderef] __iomem *vp_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *vp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: got void [noderef] __iomem *vp_regs
drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *vp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: got void [noderef] __iomem *vp_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: got void [noderef] __iomem *
>> drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: got void [noderef] __iomem *
drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: got void [noderef] __iomem *
drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: got void [noderef] __iomem *
drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: got void [noderef] __iomem *
drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:633:9: sparse: got void [noderef] __iomem *
drivers/video/fbdev/geode/lxfb_ops.c:760:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:760:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:760:9: sparse: got void [noderef] __iomem *
drivers/video/fbdev/geode/lxfb_ops.c:760:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:760:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:760:9: sparse: got void [noderef] __iomem *
>> drivers/video/fbdev/geode/lxfb_ops.c:760:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:760:9: sparse: expected void *
drivers/video/fbdev/geode/lxfb_ops.c:760:9: sparse: got void [noderef] __iomem *
vim +602 drivers/video/fbdev/geode/lxfb_ops.c
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 582
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 583 static void lx_save_regs(struct lxfb_par *par)
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 584 {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 585 uint32_t filt;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 586 int i;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 587
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 588 /* wait for the BLT engine to stop being busy */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 589 do {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 590 i = read_gp(par, GP_BLT_STATUS);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 591 } while ((i & GP_BLT_STATUS_PB) || !(i & GP_BLT_STATUS_CE));
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 592
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 593 /* save MSRs */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 594 rdmsrl(MSR_LX_MSR_PADSEL, par->msr.padsel);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 595 rdmsrl(MSR_GLCP_DOTPLL, par->msr.dotpll);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 596 rdmsrl(MSR_LX_GLD_MSR_CONFIG, par->msr.dfglcfg);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 597 rdmsrl(MSR_LX_SPARE_MSR, par->msr.dcspare);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 598
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 599 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 600
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 601 /* save registers */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @602 memcpy(par->gp, par->gp_regs, sizeof(par->gp));
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @603 memcpy(par->dc, par->dc_regs, sizeof(par->dc));
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @604 memcpy(par->vp, par->vp_regs, sizeof(par->vp));
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @605 memcpy(par->fp, par->vp_regs + VP_FP_START, sizeof(par->fp));
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 606
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 607 /* save the display controller palette */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 608 write_dc(par, DC_PAL_ADDRESS, 0);
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 609 for (i = 0; i < ARRAY_SIZE(par->dc_pal); i++)
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 610 par->dc_pal[i] = read_dc(par, DC_PAL_DATA);
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 611
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 612 /* save the video processor palette */
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 613 write_vp(par, VP_PAR, 0);
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 614 for (i = 0; i < ARRAY_SIZE(par->vp_pal); i++)
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 615 par->vp_pal[i] = read_vp(par, VP_PDR);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 616
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 617 /* save the horizontal filter coefficients */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 618 filt = par->dc[DC_IRQ_FILT_CTL] | DC_IRQ_FILT_CTL_H_FILT_SEL;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 619 for (i = 0; i < ARRAY_SIZE(par->hcoeff); i += 2) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 620 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 621 par->hcoeff[i] = read_dc(par, DC_FILT_COEFF1);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 622 par->hcoeff[i + 1] = read_dc(par, DC_FILT_COEFF2);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 623 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 624
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 625 /* save the vertical filter coefficients */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 626 filt &= ~DC_IRQ_FILT_CTL_H_FILT_SEL;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 627 for (i = 0; i < ARRAY_SIZE(par->vcoeff); i++) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 628 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 629 par->vcoeff[i] = read_dc(par, DC_FILT_COEFF1);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 630 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 631
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 632 /* save video coeff ram */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 633 memcpy(par->vp_coeff, par->vp_regs + VP_VCR, sizeof(par->vp_coeff));
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 634 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 635
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 636 static void lx_restore_gfx_proc(struct lxfb_par *par)
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 637 {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 638 int i;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 639
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 640 /* a bunch of registers require GP_RASTER_MODE to be set first */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 641 write_gp(par, GP_RASTER_MODE, par->gp[GP_RASTER_MODE]);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 642
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 643 for (i = 0; i < ARRAY_SIZE(par->gp); i++) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 644 switch (i) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 645 case GP_RASTER_MODE:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 646 case GP_VECTOR_MODE:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 647 case GP_BLT_MODE:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 648 case GP_BLT_STATUS:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 649 case GP_HST_SRC:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 650 /* FIXME: restore LUT data */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 651 case GP_LUT_INDEX:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 652 case GP_LUT_DATA:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 653 /* don't restore these registers */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 654 break;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 655
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 656 default:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 657 write_gp(par, i, par->gp[i]);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 658 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 659 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 660 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 661
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 662 static void lx_restore_display_ctlr(struct lxfb_par *par)
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 663 {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 664 uint32_t filt;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 665 int i;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 666
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 667 wrmsrl(MSR_LX_SPARE_MSR, par->msr.dcspare);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 668
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 669 for (i = 0; i < ARRAY_SIZE(par->dc); i++) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 670 switch (i) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 671 case DC_UNLOCK:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 672 /* unlock the DC; runs first */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 673 write_dc(par, DC_UNLOCK, DC_UNLOCK_UNLOCK);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 674 break;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 675
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 676 case DC_GENERAL_CFG:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 677 case DC_DISPLAY_CFG:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 678 /* disable all while restoring */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 679 write_dc(par, i, 0);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 680 break;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 681
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 682 case DC_DV_CTL:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 683 /* set all ram to dirty */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 684 write_dc(par, i, par->dc[i] | DC_DV_CTL_CLEAR_DV_RAM);
2c3a1e49696fd05 drivers/video/fbdev/geode/lxfb_ops.c Gustavo A. R. Silva 2020-11-20 685 break;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 686
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 687 case DC_RSVD_1:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 688 case DC_RSVD_2:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 689 case DC_RSVD_3:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 690 case DC_LINE_CNT:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 691 case DC_PAL_ADDRESS:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 692 case DC_PAL_DATA:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 693 case DC_DFIFO_DIAG:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 694 case DC_CFIFO_DIAG:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 695 case DC_FILT_COEFF1:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 696 case DC_FILT_COEFF2:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 697 case DC_RSVD_4:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 698 case DC_RSVD_5:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 699 /* don't restore these registers */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 700 break;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 701
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 702 default:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 703 write_dc(par, i, par->dc[i]);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 704 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 705 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 706
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 707 /* restore the palette */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 708 write_dc(par, DC_PAL_ADDRESS, 0);
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 709 for (i = 0; i < ARRAY_SIZE(par->dc_pal); i++)
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 710 write_dc(par, DC_PAL_DATA, par->dc_pal[i]);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 711
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 712 /* restore the horizontal filter coefficients */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 713 filt = par->dc[DC_IRQ_FILT_CTL] | DC_IRQ_FILT_CTL_H_FILT_SEL;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 714 for (i = 0; i < ARRAY_SIZE(par->hcoeff); i += 2) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 715 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 716 write_dc(par, DC_FILT_COEFF1, par->hcoeff[i]);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 717 write_dc(par, DC_FILT_COEFF2, par->hcoeff[i + 1]);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 718 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 719
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 720 /* restore the vertical filter coefficients */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 721 filt &= ~DC_IRQ_FILT_CTL_H_FILT_SEL;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 722 for (i = 0; i < ARRAY_SIZE(par->vcoeff); i++) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 723 write_dc(par, DC_IRQ_FILT_CTL, (filt & 0xffffff00) | i);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 724 write_dc(par, DC_FILT_COEFF1, par->vcoeff[i]);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 725 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 726 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 727
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 728 static void lx_restore_video_proc(struct lxfb_par *par)
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 729 {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 730 int i;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 731
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 732 wrmsrl(MSR_LX_GLD_MSR_CONFIG, par->msr.dfglcfg);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 733 wrmsrl(MSR_LX_MSR_PADSEL, par->msr.padsel);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 734
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 735 for (i = 0; i < ARRAY_SIZE(par->vp); i++) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 736 switch (i) {
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 737 case VP_VCFG:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 738 case VP_DCFG:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 739 case VP_PAR:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 740 case VP_PDR:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 741 case VP_CCS:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 742 case VP_RSVD_0:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 743 /* case VP_VDC: */ /* why should this not be restored? */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 744 case VP_RSVD_1:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 745 case VP_CRC32:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 746 /* don't restore these registers */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 747 break;
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 748
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 749 default:
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 750 write_vp(par, i, par->vp[i]);
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 751 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 752 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 753
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 754 /* restore video processor palette */
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 755 write_vp(par, VP_PAR, 0);
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 756 for (i = 0; i < ARRAY_SIZE(par->vp_pal); i++)
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 757 write_vp(par, VP_PDR, par->vp_pal[i]);
16cdd4336fdca9b drivers/video/geode/lxfb_ops.c Daniel Drake 2010-11-30 758
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 759 /* restore video coeff ram */
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 @760 memcpy(par->vp_regs + VP_VCR, par->vp_coeff, sizeof(par->vp_coeff));
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 761 }
f694e53bd0db695 drivers/video/geode/lxfb_ops.c Andres Salomon 2008-04-28 762
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next prev parent reply other threads:[~2021-12-14 16:32 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-13 22:33 [PATCH 00/17] Enable strict compile-time memcpy() fortify checks Kees Cook
2021-12-13 22:33 ` [PATCH 01/17] KVM: x86: Replace memset() "optimization" with normal per-field writes Kees Cook
2021-12-13 22:33 ` [PATCH 02/17] net/mlx5e: Avoid field-overflowing memcpy() Kees Cook
2021-12-13 22:33 ` [PATCH 03/17] net/mlx5e: Use struct_group() for memcpy() region Kees Cook
2021-12-13 22:33 ` [PATCH 04/17] media: omap3isp: " Kees Cook
2021-12-13 22:33 ` [PATCH 05/17] sata_fsl: " Kees Cook
2021-12-13 22:33 ` [PATCH 06/17] fortify: Detect struct member overflows in memcpy() at compile-time Kees Cook
2021-12-14 3:56 ` kernel test robot
2021-12-14 8:46 ` kernel test robot
2021-12-14 11:50 ` kernel test robot
2021-12-14 16:32 ` kernel test robot [this message]
2021-12-14 19:06 ` kernel test robot
2021-12-16 8:56 ` kernel test robot
2021-12-16 11:08 ` Mark Rutland
2021-12-16 11:21 ` Mark Rutland
2021-12-16 18:00 ` Kees Cook
2021-12-17 13:34 ` Mark Rutland
2021-12-13 22:33 ` [PATCH 07/17] fortify: Detect struct member overflows in memmove() " Kees Cook
2021-12-13 22:33 ` [PATCH 08/17] ath11k: Use memset_startat() for clearing queue descriptors Kees Cook
2021-12-13 22:33 ` Kees Cook
2021-12-14 6:02 ` Kalle Valo
2021-12-14 6:02 ` Kalle Valo
2021-12-14 15:46 ` Kalle Valo
2021-12-14 15:46 ` Kalle Valo
2021-12-14 17:05 ` Kees Cook
2021-12-14 17:05 ` Kees Cook
2021-12-16 13:50 ` Kalle Valo
2021-12-16 13:50 ` Kalle Valo
2021-12-13 22:33 ` [PATCH 09/17] RDMA/mlx5: Use memset_after() to zero struct mlx5_ib_mr Kees Cook
2021-12-13 22:33 ` [PATCH 10/17] drbd: Use struct_group() to zero algs Kees Cook
2021-12-13 22:33 ` [PATCH 11/17] dm integrity: Use struct_group() to zero struct journal_sector Kees Cook
2021-12-13 22:33 ` [dm-devel] " Kees Cook
2021-12-13 22:33 ` [PATCH 12/17] iw_cxgb4: Use memset_startat() for cpl_t5_pass_accept_rpl Kees Cook
2021-12-13 22:33 ` [PATCH 13/17] intel_th: msu: Use memset_startat() for clearing hw header Kees Cook
2021-12-13 22:33 ` [PATCH 14/17] IB/mthca: Use memset_startat() for clearing mpt_entry Kees Cook
2021-12-13 22:33 ` [PATCH 15/17] scsi: lpfc: Use struct_group() to initialize struct lpfc_cgn_info Kees Cook
2021-12-13 22:33 ` [PATCH 16/17] fortify: Detect struct member overflows in memset() at compile-time Kees Cook
2021-12-14 12:31 ` kernel test robot
2021-12-13 22:33 ` [PATCH 17/17] fortify: Work around Clang inlining bugs Kees Cook
2021-12-14 13:22 ` kernel test robot
2021-12-14 13:22 ` kernel test robot
2021-12-15 0:26 ` [PATCH 00/17] Enable strict compile-time memcpy() fortify checks Jason Gunthorpe
2021-12-17 4:04 ` Martin K. Petersen
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=202112150059.yHZrJY0I-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@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.