[linux-next:master 4917/7526] drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse: sparse: incorrect type in argument 1 (different address spaces)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   196d330d7fb1e7cc0d85641c89ce4602cb36f12e
commit: 28e77cc1c0686621a4d416f599cee5ab369daa0a [4917/7526] fortify: Detect struct member overflows in memset() at compile-time
config: i386-randconfig-s002 (https://download.01.org/0day-ci/archive/20220224/202202240800.lspoYv2b-lkp@xxxxxxxxx/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=28e77cc1c0686621a4d416f599cee5ab369daa0a
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 28e77cc1c0686621a4d416f599cee5ab369daa0a
        # 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/gpu/drm/gma500/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got unsigned char [noderef] [usertype] __iomem * @@
   drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse:     expected void const *
   drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse:     got unsigned char [noderef] [usertype] __iomem *
>> drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const * @@     got unsigned char [noderef] [usertype] __iomem * @@
   drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse:     expected void const *
   drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse:     got unsigned char [noderef] [usertype] __iomem *
>> drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void * @@     got unsigned char [noderef] [usertype] __iomem * @@
   drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse:     expected void *
   drivers/gpu/drm/gma500/framebuffer.c:268:9: sparse:     got unsigned char [noderef] [usertype] __iomem *

vim +268 drivers/gpu/drm/gma500/framebuffer.c

4d8d096e9ae866 Alan Cox           2011-11-03  225  
4d8d096e9ae866 Alan Cox           2011-11-03  226  /**
4d8d096e9ae866 Alan Cox           2011-11-03  227   *	psbfb_create		-	create a framebuffer
358794a29a5fe3 Lee Jones          2021-01-15  228   *	@fb_helper: the framebuffer helper
4d8d096e9ae866 Alan Cox           2011-11-03  229   *	@sizes: specification of the layout
4d8d096e9ae866 Alan Cox           2011-11-03  230   *
4d8d096e9ae866 Alan Cox           2011-11-03  231   *	Create a framebuffer to the specifications provided
4d8d096e9ae866 Alan Cox           2011-11-03  232   */
6b7ce2c4161a00 Thomas Zimmermann  2019-11-22  233  static int psbfb_create(struct drm_fb_helper *fb_helper,
4d8d096e9ae866 Alan Cox           2011-11-03  234  				struct drm_fb_helper_surface_size *sizes)
4d8d096e9ae866 Alan Cox           2011-11-03  235  {
6b7ce2c4161a00 Thomas Zimmermann  2019-11-22  236  	struct drm_device *dev = fb_helper->dev;
f71635e893c383 Thomas Zimmermann  2021-09-20  237  	struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
a2c68495b57986 Thomas Zimmermann  2020-12-01  238  	struct pci_dev *pdev = to_pci_dev(dev->dev);
4d8d096e9ae866 Alan Cox           2011-11-03  239  	struct fb_info *info;
0a8ec2ed0783eb Thomas Zimmermann  2019-11-22  240  	struct drm_framebuffer *fb;
a9a644ac9e8d6c Dave Airlie        2011-11-28  241  	struct drm_mode_fb_cmd2 mode_cmd;
4d8d096e9ae866 Alan Cox           2011-11-03  242  	int size;
4d8d096e9ae866 Alan Cox           2011-11-03  243  	int ret;
f2d061ed01b3f0 Thomas Zimmermann  2021-10-15  244  	struct psb_gem_object *backing;
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  245  	struct drm_gem_object *obj;
a9a644ac9e8d6c Dave Airlie        2011-11-28  246  	u32 bpp, depth;
4d8d096e9ae866 Alan Cox           2011-11-03  247  
4d8d096e9ae866 Alan Cox           2011-11-03  248  	mode_cmd.width = sizes->surface_width;
4d8d096e9ae866 Alan Cox           2011-11-03  249  	mode_cmd.height = sizes->surface_height;
a9a644ac9e8d6c Dave Airlie        2011-11-28  250  	bpp = sizes->surface_bpp;
6aa1ead1b85581 Kirill A. Shutemov 2012-03-08  251  	depth = sizes->surface_depth;
4d8d096e9ae866 Alan Cox           2011-11-03  252  
4d8d096e9ae866 Alan Cox           2011-11-03  253  	/* No 24bit packed */
a9a644ac9e8d6c Dave Airlie        2011-11-28  254  	if (bpp == 24)
a9a644ac9e8d6c Dave Airlie        2011-11-28  255  		bpp = 32;
4d8d096e9ae866 Alan Cox           2011-11-03  256  
ebc7d6470ac4b5 Patrik Jakobsson   2020-10-28  257  	mode_cmd.pitches[0] = ALIGN(mode_cmd.width * DIV_ROUND_UP(bpp, 8), 64);
a6ba582d264f67 Alan Cox           2011-11-29  258  
a6ba582d264f67 Alan Cox           2011-11-29  259  	size = mode_cmd.pitches[0] * mode_cmd.height;
a6ba582d264f67 Alan Cox           2011-11-29  260  	size = ALIGN(size, PAGE_SIZE);
a6ba582d264f67 Alan Cox           2011-11-29  261  
4d8d096e9ae866 Alan Cox           2011-11-03  262  	/* Allocate the framebuffer in the GTT with stolen page backing */
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  263  	backing = psb_gem_create(dev, size, "fb", true, PAGE_SIZE);
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  264  	if (IS_ERR(backing))
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  265  		return PTR_ERR(backing);
f2d061ed01b3f0 Thomas Zimmermann  2021-10-15  266  	obj = &backing->base;
4d8d096e9ae866 Alan Cox           2011-11-03  267  
bb84977941ad85 Alan Cox           2012-05-03 @268  	memset(dev_priv->vram_addr + backing->offset, 0, size);
bb84977941ad85 Alan Cox           2012-05-03  269  
6b7ce2c4161a00 Thomas Zimmermann  2019-11-22  270  	info = drm_fb_helper_alloc_fbi(fb_helper);
546187c85d4d4e Archit Taneja      2015-07-22  271  	if (IS_ERR(info)) {
546187c85d4d4e Archit Taneja      2015-07-22  272  		ret = PTR_ERR(info);
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  273  		goto err_drm_gem_object_put;
4d8d096e9ae866 Alan Cox           2011-11-03  274  	}
4d8d096e9ae866 Alan Cox           2011-11-03  275  
a9a644ac9e8d6c Dave Airlie        2011-11-28  276  	mode_cmd.pixel_format = drm_mode_legacy_fb_format(bpp, depth);
a9a644ac9e8d6c Dave Airlie        2011-11-28  277  
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  278  	fb = psb_framebuffer_create(dev, &mode_cmd, obj);
0a8ec2ed0783eb Thomas Zimmermann  2019-11-22  279  	if (IS_ERR(fb)) {
0a8ec2ed0783eb Thomas Zimmermann  2019-11-22  280  		ret = PTR_ERR(fb);
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  281  		goto err_drm_gem_object_put;
0a8ec2ed0783eb Thomas Zimmermann  2019-11-22  282  	}
4d8d096e9ae866 Alan Cox           2011-11-03  283  
6b7ce2c4161a00 Thomas Zimmermann  2019-11-22  284  	fb_helper->fb = fb;
4d8d096e9ae866 Alan Cox           2011-11-03  285  
a6ba582d264f67 Alan Cox           2011-11-29  286  	info->fbops = &psbfb_unaccel_ops;
4d8d096e9ae866 Alan Cox           2011-11-03  287  
4d8d096e9ae866 Alan Cox           2011-11-03  288  	info->fix.smem_start = dev->mode_config.fb_base;
4d8d096e9ae866 Alan Cox           2011-11-03  289  	info->fix.smem_len = size;
ebc7d6470ac4b5 Patrik Jakobsson   2020-10-28  290  	info->fix.ywrapstep = 0;
a6ba582d264f67 Alan Cox           2011-11-29  291  	info->fix.ypanstep = 0;
4d8d096e9ae866 Alan Cox           2011-11-03  292  
4d8d096e9ae866 Alan Cox           2011-11-03  293  	/* Accessed stolen memory directly */
37214ca00e6474 Kirill A. Shutemov 2012-05-03  294  	info->screen_base = dev_priv->vram_addr + backing->offset;
4d8d096e9ae866 Alan Cox           2011-11-03  295  	info->screen_size = size;
4d8d096e9ae866 Alan Cox           2011-11-03  296  
4d8d096e9ae866 Alan Cox           2011-11-03  297  	if (dev_priv->gtt.stolen_size) {
4d8d096e9ae866 Alan Cox           2011-11-03  298  		info->apertures->ranges[0].base = dev->mode_config.fb_base;
4d8d096e9ae866 Alan Cox           2011-11-03  299  		info->apertures->ranges[0].size = dev_priv->gtt.stolen_size;
4d8d096e9ae866 Alan Cox           2011-11-03  300  	}
4d8d096e9ae866 Alan Cox           2011-11-03  301  
6b7ce2c4161a00 Thomas Zimmermann  2019-11-22  302  	drm_fb_helper_fill_info(info, fb_helper, sizes);
4d8d096e9ae866 Alan Cox           2011-11-03  303  
a2c68495b57986 Thomas Zimmermann  2020-12-01  304  	info->fix.mmio_start = pci_resource_start(pdev, 0);
a2c68495b57986 Thomas Zimmermann  2020-12-01  305  	info->fix.mmio_len = pci_resource_len(pdev, 0);
4d8d096e9ae866 Alan Cox           2011-11-03  306  
fb2a99e15ff0d3 Sascha Hauer       2012-02-06  307  	/* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */
4d8d096e9ae866 Alan Cox           2011-11-03  308  
e18da8ce7d730b Thomas Zimmermann  2019-11-22  309  	dev_dbg(dev->dev, "allocated %dx%d fb\n", fb->width, fb->height);
4d8d096e9ae866 Alan Cox           2011-11-03  310  
4d8d096e9ae866 Alan Cox           2011-11-03  311  	return 0;
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  312  
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  313  err_drm_gem_object_put:
957a2d0e7ea38d Thomas Zimmermann  2021-10-15  314  	drm_gem_object_put(obj);
4d8d096e9ae866 Alan Cox           2011-11-03  315  	return ret;
4d8d096e9ae866 Alan Cox           2011-11-03  316  }
4d8d096e9ae866 Alan Cox           2011-11-03  317  

:::::: The code at line 268 was first introduced by commit
:::::: bb84977941ad85a5c0b9ff4fd5331913e31107c4 gma500: wide framebuffer memory

:::::: TO: Alan Cox <alan@xxxxxxxxxxxxxxx>
:::::: CC: Dave Airlie <airlied@xxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux