[drm-misc:drm-misc-next 2/18] drivers/gpu/drm/tiny/simpledrm.c:514:32: sparse: sparse: incorrect type in initializer (different address spaces)
kernel test robot
lkp at intel.com
Sat Aug 13 21:28:04 UTC 2022
tree: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
head: 3bd86801c84f66b4abedde4078e5237937b7576b
commit: 71bf55872cbe035820a87b2aa5fc1dc60678abfa [2/18] drm/format-helper: Provide drm_fb_blit()
config: x86_64-randconfig-s022 (https://download.01.org/0day-ci/archive/20220814/202208140534.AuJeaYA5-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
git remote add drm-misc git://anongit.freedesktop.org/drm/drm-misc
git fetch --no-tags drm-misc drm-misc-next
git checkout 71bf55872cbe035820a87b2aa5fc1dc60678abfa
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/gpu/drm/tiny/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp at intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/tiny/simpledrm.c:514:32: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void *vaddr @@ got void [noderef] __iomem *screen_base @@
drivers/gpu/drm/tiny/simpledrm.c:514:32: sparse: expected void *vaddr
drivers/gpu/drm/tiny/simpledrm.c:514:32: sparse: got void [noderef] __iomem *screen_base
vim +514 drivers/gpu/drm/tiny/simpledrm.c
504
505 static void simpledrm_primary_plane_helper_atomic_update(struct drm_plane *plane,
506 struct drm_atomic_state *old_state)
507 {
508 struct drm_plane_state *plane_state = plane->state;
509 struct drm_plane_state *old_plane_state = drm_atomic_get_old_plane_state(old_state, plane);
510 struct drm_shadow_plane_state *shadow_plane_state = to_drm_shadow_plane_state(plane_state);
511 struct drm_framebuffer *fb = plane_state->fb;
512 struct drm_device *dev = plane->dev;
513 struct simpledrm_device *sdev = simpledrm_device_of_dev(dev);
> 514 struct iosys_map dst = IOSYS_MAP_INIT_VADDR(sdev->screen_base);
515 struct drm_rect src_clip, dst_clip;
516 int idx;
517
518 if (!fb)
519 return;
520
521 if (!drm_atomic_helper_damage_merged(old_plane_state, plane_state, &src_clip))
522 return;
523
524 dst_clip = plane_state->dst;
525 if (!drm_rect_intersect(&dst_clip, &src_clip))
526 return;
527
528 if (!drm_dev_enter(dev, &idx))
529 return;
530
531 iosys_map_incr(&dst, drm_fb_clip_offset(sdev->pitch, sdev->format, &dst_clip));
532 drm_fb_blit(&dst, &sdev->pitch, sdev->format->format, shadow_plane_state->data, fb,
533 &src_clip);
534
535 drm_dev_exit(idx);
536 }
537
--
0-DAY CI Kernel Test Service
https://01.org/lkp
More information about the dri-devel
mailing list