All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.