All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [jirislaby:devel 44/52] drivers/video/console/vgacon.c:323:23: sparse: sparse: incorrect type in assignment (different address spaces)
Date: Wed, 14 Oct 2020 16:20:39 +0800	[thread overview]
Message-ID: <202010141636.npB0m44T-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 17011 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git devel
head:   82a313407ec913c11e42b0759a716809d42edffc
commit: 82337fd93f471d51590a65991c4ca9498ab2473b [44/52] make VGA_MAP_MEM return pointer
config: mips-randconfig-s031-20201014 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-rc1-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git/commit/?id=82337fd93f471d51590a65991c4ca9498ab2473b
        git remote add jirislaby https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git
        git fetch --no-tags jirislaby devel
        git checkout 82337fd93f471d51590a65991c4ca9498ab2473b
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=mips 

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/console/vgacon.c:323:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected unsigned short [usertype] *static [toplevel] vga_vram_base @@     got void [noderef] __iomem * @@
>> drivers/video/console/vgacon.c:323:23: sparse:     expected unsigned short [usertype] *static [toplevel] vga_vram_base
>> drivers/video/console/vgacon.c:323:23: sparse:     got void [noderef] __iomem *
>> drivers/video/console/vgacon.c:874:25: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected char *charmap @@     got void [noderef] __iomem * @@
>> drivers/video/console/vgacon.c:874:25: sparse:     expected char *charmap
   drivers/video/console/vgacon.c:874:25: sparse:     got void [noderef] __iomem *
   drivers/video/console/vgacon.c:877:25: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected char *charmap @@     got void [noderef] __iomem * @@
   drivers/video/console/vgacon.c:877:25: sparse:     expected char *charmap
   drivers/video/console/vgacon.c:877:25: sparse:     got void [noderef] __iomem *
   drivers/video/console/vgacon.c: note: in included file (through include/linux/vt_buffer.h, include/linux/selection.h):
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:42:16: sparse: sparse: cast to restricted __le16
   arch/mips/include/asm/vga.h:37:15: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short volatile [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:37:15: sparse:     expected unsigned short volatile [usertype]
   arch/mips/include/asm/vga.h:37:15: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:47:21: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected unsigned short [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:47:21: sparse:     expected unsigned short [usertype]
   arch/mips/include/asm/vga.h:47:21: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:47:21: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected unsigned short [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:47:21: sparse:     expected unsigned short [usertype]
   arch/mips/include/asm/vga.h:47:21: sparse:     got restricted __le16 [usertype]
   arch/mips/include/asm/vga.h:47:21: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected unsigned short [usertype] @@     got restricted __le16 [usertype] @@
   arch/mips/include/asm/vga.h:47:21: sparse:     expected unsigned short [usertype]
   arch/mips/include/asm/vga.h:47:21: sparse:     got restricted __le16 [usertype]

vim +323 drivers/video/console/vgacon.c

   180	
   181	static const char *vgacon_startup(void)
   182	{
   183		const char *display_desc = NULL;
   184		phys_addr_t vram_phys;
   185		u16 saved1, saved2;
   186		volatile u16 *p;
   187	
   188		if (screen_info.orig_video_isVGA == VIDEO_TYPE_VLFB ||
   189		    screen_info.orig_video_isVGA == VIDEO_TYPE_EFI) {
   190		      no_vga:
   191	#ifdef CONFIG_DUMMY_CONSOLE
   192			conswitchp = &dummy_con;
   193			return conswitchp->con_startup();
   194	#else
   195			return NULL;
   196	#endif
   197		}
   198	
   199		/* boot_params.screen_info reasonably initialized? */
   200		if ((screen_info.orig_video_lines == 0) ||
   201		    (screen_info.orig_video_cols  == 0))
   202			goto no_vga;
   203	
   204		/* VGA16 modes are not handled by VGACON */
   205		if ((screen_info.orig_video_mode == 0x0D) ||	/* 320x200/4 */
   206		    (screen_info.orig_video_mode == 0x0E) ||	/* 640x200/4 */
   207		    (screen_info.orig_video_mode == 0x10) ||	/* 640x350/4 */
   208		    (screen_info.orig_video_mode == 0x12) ||	/* 640x480/4 */
   209		    (screen_info.orig_video_mode == 0x6A))	/* 800x600/4 (VESA) */
   210			goto no_vga;
   211	
   212		vga_video_num_lines = screen_info.orig_video_lines;
   213		vga_video_num_columns = screen_info.orig_video_cols;
   214		vgastate.vgabase = NULL;
   215	
   216		if (screen_info.orig_video_mode == 7) {
   217			/* Monochrome display */
   218			vram_phys = 0xb0000;
   219			vga_video_port_reg = VGA_CRT_IM;
   220			vga_video_port_val = VGA_CRT_DM;
   221			if ((screen_info.orig_video_ega_bx & 0xff) != 0x10) {
   222				static struct resource ega_console_resource =
   223				    { .name	= "ega",
   224				      .flags	= IORESOURCE_IO,
   225				      .start	= 0x3B0,
   226				      .end	= 0x3BF };
   227				vga_video_type = VIDEO_TYPE_EGAM;
   228				vga_vram_size = 0x8000;
   229				display_desc = "EGA+";
   230				request_resource(&ioport_resource,
   231						 &ega_console_resource);
   232			} else {
   233				static struct resource mda1_console_resource =
   234				    { .name	= "mda",
   235				      .flags	= IORESOURCE_IO,
   236				      .start	= 0x3B0,
   237				      .end	= 0x3BB };
   238				static struct resource mda2_console_resource =
   239				    { .name	= "mda",
   240				      .flags	= IORESOURCE_IO,
   241				      .start	= 0x3BF,
   242				      .end	= 0x3BF };
   243				vga_video_type = VIDEO_TYPE_MDA;
   244				vga_vram_size = 0x2000;
   245				display_desc = "*MDA";
   246				request_resource(&ioport_resource,
   247						 &mda1_console_resource);
   248				request_resource(&ioport_resource,
   249						 &mda2_console_resource);
   250				vga_video_font_height = 14;
   251			}
   252		} else {
   253			/* If not, it is color. */
   254			vga_can_do_color = true;
   255			vram_phys = 0xb8000;
   256			vga_video_port_reg = VGA_CRT_IC;
   257			vga_video_port_val = VGA_CRT_DC;
   258			if ((screen_info.orig_video_ega_bx & 0xff) != 0x10) {
   259				int i;
   260	
   261				vga_vram_size = 0x8000;
   262	
   263				if (!screen_info.orig_video_isVGA) {
   264					static struct resource ega_console_resource =
   265					    { .name	= "ega",
   266					      .flags	= IORESOURCE_IO,
   267					      .start	= 0x3C0,
   268					      .end	= 0x3DF };
   269					vga_video_type = VIDEO_TYPE_EGAC;
   270					display_desc = "EGA";
   271					request_resource(&ioport_resource,
   272							 &ega_console_resource);
   273				} else {
   274					static struct resource vga_console_resource =
   275					    { .name	= "vga+",
   276					      .flags	= IORESOURCE_IO,
   277					      .start	= 0x3C0,
   278					      .end	= 0x3DF };
   279					vga_video_type = VIDEO_TYPE_VGAC;
   280					display_desc = "VGA+";
   281					request_resource(&ioport_resource,
   282							 &vga_console_resource);
   283	
   284					/*
   285					 * Normalise the palette registers, to point
   286					 * the 16 screen colours to the first 16
   287					 * DAC entries.
   288					 */
   289	
   290					for (i = 0; i < 16; i++) {
   291						inb_p(VGA_IS1_RC);
   292						outb_p(i, VGA_ATT_W);
   293						outb_p(i, VGA_ATT_W);
   294					}
   295					outb_p(0x20, VGA_ATT_W);
   296	
   297					/*
   298					 * Now set the DAC registers back to their
   299					 * default values
   300					 */
   301					for (i = 0; i < 16; i++) {
   302						outb_p(color_table[i], VGA_PEL_IW);
   303						outb_p(default_red[i], VGA_PEL_D);
   304						outb_p(default_grn[i], VGA_PEL_D);
   305						outb_p(default_blu[i], VGA_PEL_D);
   306					}
   307				}
   308			} else {
   309				static struct resource cga_console_resource =
   310				    { .name	= "cga",
   311				      .flags	= IORESOURCE_IO,
   312				      .start	= 0x3D4,
   313				      .end	= 0x3D5 };
   314				vga_video_type = VIDEO_TYPE_CGA;
   315				vga_vram_size = 0x2000;
   316				display_desc = "*CGA";
   317				request_resource(&ioport_resource,
   318						 &cga_console_resource);
   319				vga_video_font_height = 8;
   320			}
   321		}
   322	
 > 323		vga_vram_base = VGA_MAP_MEM(vram_phys, vga_vram_size);
   324		vga_vram_end = (void *)vga_vram_base + vga_vram_size;
   325	
   326		/*
   327		 *      Find out if there is a graphics card present.
   328		 *      Are there smarter methods around?
   329		 */
   330		p = (volatile u16 *) vga_vram_base;
   331		saved1 = scr_readw(p);
   332		saved2 = scr_readw(p + 1);
   333		scr_writew(0xAA55, p);
   334		scr_writew(0x55AA, p + 1);
   335		if (scr_readw(p) != 0xAA55 || scr_readw(p + 1) != 0x55AA) {
   336			scr_writew(saved1, p);
   337			scr_writew(saved2, p + 1);
   338			goto no_vga;
   339		}
   340		scr_writew(0x55AA, p);
   341		scr_writew(0xAA55, p + 1);
   342		if (scr_readw(p) != 0x55AA || scr_readw(p + 1) != 0xAA55) {
   343			scr_writew(saved1, p);
   344			scr_writew(saved2, p + 1);
   345			goto no_vga;
   346		}
   347		scr_writew(saved1, p);
   348		scr_writew(saved2, p + 1);
   349	
   350		if (vga_video_type == VIDEO_TYPE_EGAC
   351		    || vga_video_type == VIDEO_TYPE_VGAC
   352		    || vga_video_type == VIDEO_TYPE_EGAM) {
   353			vga_hardscroll_enabled = vga_hardscroll_user_enable;
   354			vga_default_font_height = screen_info.orig_video_points;
   355			vga_video_font_height = screen_info.orig_video_points;
   356			/* This may be suboptimal but is a safe bet - go with it */
   357			vga_scan_lines =
   358			    vga_video_font_height * vga_video_num_lines;
   359		}
   360	
   361		vgacon_xres = screen_info.orig_video_cols * VGA_FONTWIDTH;
   362		vgacon_yres = vga_scan_lines;
   363	
   364		vga_init_done = true;
   365	
   366		return display_desc;
   367	}
   368	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38872 bytes --]

                 reply	other threads:[~2020-10-14  8:20 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202010141636.npB0m44T-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.