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