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 <l...@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 <hdego...@redhat.com> :::::: CC: Bartlomiej Zolnierkiewicz <b.zolnier...@samsung.com> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip