lkml.org 
[lkml]   [2020]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectdrivers/video/fbdev/efifb.c:147:23: sparse: sparse: incorrect type in initializer (different address spaces)
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dcde237b9b0eb1d19306e6f48c0a4e058907619f
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date: 3 weeks ago
config: i386-randconfig-s001-20200709 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-37-gc9676a3b-dirty
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386

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/efifb.c:147:23: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char [usertype] *dst @@ got char [noderef] __iomem *screen_base @@
drivers/video/fbdev/efifb.c:147:23: sparse: expected unsigned char [usertype] *dst
drivers/video/fbdev/efifb.c:147:23: sparse: got char [noderef] __iomem *screen_base
drivers/video/fbdev/efifb.c:250:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got char [noderef] __iomem *screen_base @@
drivers/video/fbdev/efifb.c:250:38: sparse: expected void *addr
drivers/video/fbdev/efifb.c:250:38: sparse: got char [noderef] __iomem *screen_base
drivers/video/fbdev/efifb.c:483:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char [noderef] __iomem *screen_base @@ got void * @@
drivers/video/fbdev/efifb.c:483:35: sparse: expected char [noderef] __iomem *screen_base
drivers/video/fbdev/efifb.c:483:35: sparse: got void *
drivers/video/fbdev/efifb.c:486:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char [noderef] __iomem *screen_base @@ got void * @@
drivers/video/fbdev/efifb.c:486:35: sparse: expected char [noderef] __iomem *screen_base
drivers/video/fbdev/efifb.c:486:35: sparse: got void *
drivers/video/fbdev/efifb.c:588:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got char [noderef] __iomem *screen_base @@
drivers/video/fbdev/efifb.c:588:30: sparse: expected void *addr
drivers/video/fbdev/efifb.c:588:30: sparse: got char [noderef] __iomem *screen_base

vim +147 drivers/video/fbdev/efifb.c

88fe4ceb244777 Hans de Goede 2018-07-24 139
34db50e5565662 Hans de Goede 2018-07-03 140 static void efifb_show_boot_graphics(struct fb_info *info)
34db50e5565662 Hans de Goede 2018-07-03 141 {
34db50e5565662 Hans de Goede 2018-07-03 142 u32 bmp_width, bmp_height, bmp_pitch, screen_pitch, dst_x, y, src_y;
34db50e5565662 Hans de Goede 2018-07-03 143 struct screen_info *si = &screen_info;
34db50e5565662 Hans de Goede 2018-07-03 144 struct bmp_file_header *file_header;
34db50e5565662 Hans de Goede 2018-07-03 145 struct bmp_dib_header *dib_header;
34db50e5565662 Hans de Goede 2018-07-03 146 void *bgrt_image = NULL;
34db50e5565662 Hans de Goede 2018-07-03 @147 u8 *dst = info->screen_base;
34db50e5565662 Hans de Goede 2018-07-03 148
cf7389b8095fab Hans de Goede 2018-09-26 149 if (!use_bgrt)
cf7389b8095fab Hans de Goede 2018-09-26 150 return;
cf7389b8095fab Hans de Goede 2018-09-26 151
34db50e5565662 Hans de Goede 2018-07-03 152 if (!bgrt_tab.image_address) {
34db50e5565662 Hans de Goede 2018-07-03 153 pr_info("efifb: No BGRT, not showing boot graphics\n");
34db50e5565662 Hans de Goede 2018-07-03 154 return;
34db50e5565662 Hans de Goede 2018-07-03 155 }
34db50e5565662 Hans de Goede 2018-07-03 156
b6b1d5119297ab Hans de Goede 2019-06-21 157 if (bgrt_tab.status & 0x06) {
b6b1d5119297ab Hans de Goede 2019-06-21 158 pr_info("efifb: BGRT rotation bits set, not showing boot graphics\n");
b6b1d5119297ab Hans de Goede 2019-06-21 159 return;
b6b1d5119297ab Hans de Goede 2019-06-21 160 }
b6b1d5119297ab Hans de Goede 2019-06-21 161
34db50e5565662 Hans de Goede 2018-07-03 162 /* Avoid flashing the logo if we're going to print std probe messages */
34db50e5565662 Hans de Goede 2018-07-03 163 if (console_loglevel > CONSOLE_LOGLEVEL_QUIET)
34db50e5565662 Hans de Goede 2018-07-03 164 return;
34db50e5565662 Hans de Goede 2018-07-03 165
34db50e5565662 Hans de Goede 2018-07-03 166 /* bgrt_tab.status is unreliable, so we don't check it */
34db50e5565662 Hans de Goede 2018-07-03 167
34db50e5565662 Hans de Goede 2018-07-03 168 if (si->lfb_depth != 32) {
34db50e5565662 Hans de Goede 2018-07-03 169 pr_info("efifb: not 32 bits, not showing boot graphics\n");
34db50e5565662 Hans de Goede 2018-07-03 170 return;
34db50e5565662 Hans de Goede 2018-07-03 171 }
34db50e5565662 Hans de Goede 2018-07-03 172
34db50e5565662 Hans de Goede 2018-07-03 173 bgrt_image = memremap(bgrt_tab.image_address, bgrt_image_size,
34db50e5565662 Hans de Goede 2018-07-03 174 MEMREMAP_WB);
34db50e5565662 Hans de Goede 2018-07-03 175 if (!bgrt_image) {
34db50e5565662 Hans de Goede 2018-07-03 176 pr_warn("efifb: Ignoring BGRT: failed to map image memory\n");
34db50e5565662 Hans de Goede 2018-07-03 177 return;
34db50e5565662 Hans de Goede 2018-07-03 178 }
34db50e5565662 Hans de Goede 2018-07-03 179
34db50e5565662 Hans de Goede 2018-07-03 180 if (bgrt_image_size < (sizeof(*file_header) + sizeof(*dib_header)))
34db50e5565662 Hans de Goede 2018-07-03 181 goto error;
34db50e5565662 Hans de Goede 2018-07-03 182
34db50e5565662 Hans de Goede 2018-07-03 183 file_header = bgrt_image;
34db50e5565662 Hans de Goede 2018-07-03 184 if (file_header->id != 0x4d42 || file_header->reserved != 0)
34db50e5565662 Hans de Goede 2018-07-03 185 goto error;
34db50e5565662 Hans de Goede 2018-07-03 186
34db50e5565662 Hans de Goede 2018-07-03 187 dib_header = bgrt_image + sizeof(*file_header);
34db50e5565662 Hans de Goede 2018-07-03 188 if (dib_header->dib_header_size != 40 || dib_header->width < 0 ||
34db50e5565662 Hans de Goede 2018-07-03 189 dib_header->planes != 1 || dib_header->bpp != 24 ||
34db50e5565662 Hans de Goede 2018-07-03 190 dib_header->compression != 0)
34db50e5565662 Hans de Goede 2018-07-03 191 goto error;
34db50e5565662 Hans de Goede 2018-07-03 192
34db50e5565662 Hans de Goede 2018-07-03 193 bmp_width = dib_header->width;
34db50e5565662 Hans de Goede 2018-07-03 194 bmp_height = abs(dib_header->height);
34db50e5565662 Hans de Goede 2018-07-03 195 bmp_pitch = round_up(3 * bmp_width, 4);
34db50e5565662 Hans de Goede 2018-07-03 196 screen_pitch = si->lfb_linelength;
34db50e5565662 Hans de Goede 2018-07-03 197
34db50e5565662 Hans de Goede 2018-07-03 198 if ((file_header->bitmap_offset + bmp_pitch * bmp_height) >
34db50e5565662 Hans de Goede 2018-07-03 199 bgrt_image_size)
34db50e5565662 Hans de Goede 2018-07-03 200 goto error;
34db50e5565662 Hans de Goede 2018-07-03 201
34db50e5565662 Hans de Goede 2018-07-03 202 if ((bgrt_tab.image_offset_x + bmp_width) > si->lfb_width ||
34db50e5565662 Hans de Goede 2018-07-03 203 (bgrt_tab.image_offset_y + bmp_height) > si->lfb_height)
34db50e5565662 Hans de Goede 2018-07-03 204 goto error;
34db50e5565662 Hans de Goede 2018-07-03 205
88fe4ceb244777 Hans de Goede 2018-07-24 206 if (!efifb_bgrt_sanity_check(si, bmp_width))
88fe4ceb244777 Hans de Goede 2018-07-24 207 goto error;
88fe4ceb244777 Hans de Goede 2018-07-24 208
34db50e5565662 Hans de Goede 2018-07-03 209 pr_info("efifb: showing boot graphics\n");
34db50e5565662 Hans de Goede 2018-07-03 210
34db50e5565662 Hans de Goede 2018-07-03 211 for (y = 0; y < si->lfb_height; y++, dst += si->lfb_linelength) {
34db50e5565662 Hans de Goede 2018-07-03 212 /* Only background? */
34db50e5565662 Hans de Goede 2018-07-03 213 if (y < bgrt_tab.image_offset_y ||
34db50e5565662 Hans de Goede 2018-07-03 214 y >= (bgrt_tab.image_offset_y + bmp_height)) {
34db50e5565662 Hans de Goede 2018-07-03 215 memset(dst, 0, 4 * si->lfb_width);
34db50e5565662 Hans de Goede 2018-07-03 216 continue;
34db50e5565662 Hans de Goede 2018-07-03 217 }
34db50e5565662 Hans de Goede 2018-07-03 218
34db50e5565662 Hans de Goede 2018-07-03 219 src_y = y - bgrt_tab.image_offset_y;
34db50e5565662 Hans de Goede 2018-07-03 220 /* Positive header height means upside down row order */
34db50e5565662 Hans de Goede 2018-07-03 221 if (dib_header->height > 0)
34db50e5565662 Hans de Goede 2018-07-03 222 src_y = (bmp_height - 1) - src_y;
34db50e5565662 Hans de Goede 2018-07-03 223
34db50e5565662 Hans de Goede 2018-07-03 224 memset(dst, 0, bgrt_tab.image_offset_x * 4);
34db50e5565662 Hans de Goede 2018-07-03 225 dst_x = bgrt_tab.image_offset_x;
34db50e5565662 Hans de Goede 2018-07-03 226 efifb_copy_bmp(bgrt_image + file_header->bitmap_offset +
34db50e5565662 Hans de Goede 2018-07-03 227 src_y * bmp_pitch,
34db50e5565662 Hans de Goede 2018-07-03 228 (u32 *)dst + dst_x, bmp_width, si);
34db50e5565662 Hans de Goede 2018-07-03 229 dst_x += bmp_width;
34db50e5565662 Hans de Goede 2018-07-03 230 memset((u32 *)dst + dst_x, 0, (si->lfb_width - dst_x) * 4);
34db50e5565662 Hans de Goede 2018-07-03 231 }
34db50e5565662 Hans de Goede 2018-07-03 232
34db50e5565662 Hans de Goede 2018-07-03 233 memunmap(bgrt_image);
34db50e5565662 Hans de Goede 2018-07-03 234 return;
34db50e5565662 Hans de Goede 2018-07-03 235
34db50e5565662 Hans de Goede 2018-07-03 236 error:
34db50e5565662 Hans de Goede 2018-07-03 237 memunmap(bgrt_image);
34db50e5565662 Hans de Goede 2018-07-03 238 pr_warn("efifb: Ignoring BGRT: unexpected or invalid BMP data\n");
34db50e5565662 Hans de Goede 2018-07-03 239 }
34db50e5565662 Hans de Goede 2018-07-03 240 #else
34db50e5565662 Hans de Goede 2018-07-03 241 static inline void efifb_show_boot_graphics(struct fb_info *info) {}
34db50e5565662 Hans de Goede 2018-07-03 242 #endif
34db50e5565662 Hans de Goede 2018-07-03 243

:::::: The code at line 147 was first introduced by commit
:::::: 34db50e55656621c19b1a83bf896be5ac75025b9 efifb: Copy the ACPI BGRT boot graphics to the framebuffer

:::::: TO: Hans de Goede <hdegoede@redhat.com>
:::::: CC: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[unhandled content-type:application/gzip]
\
 
 \ /
  Last update: 2020-07-08 21:42    [W:0.047 / U:0.312 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site