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

Attachment: .config.gz
Description: application/gzip

Reply via email to