lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202304131941.ol8LcT9Y-lkp@intel.com>
Date:   Thu, 13 Apr 2023 19:49:50 +0800
From:   kernel test robot <lkp@...el.com>
To:     Randy Dunlap <rdunlap@...radead.org>
Cc:     oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
        Helge Deller <deller@....de>
Subject: drivers/video/fbdev/offb.c:373:48: sparse: sparse: incorrect type in
 initializer (different base types)

Hi Randy,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   de4664485abbc0529b1eec44d0061bbfe58a28fb
commit: 9d8b5376cc2848ca22314fdec9a7a45b1bf69189 fbdev: make offb driver tristate
date:   4 months ago
config: powerpc-randconfig-s053-20230413 (https://download.01.org/0day-ci/archive/20230413/202304131941.ol8LcT9Y-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 12.1.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.4-39-gce1a6720-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9d8b5376cc2848ca22314fdec9a7a45b1bf69189
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9d8b5376cc2848ca22314fdec9a7a45b1bf69189
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=powerpc olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=powerpc SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202304131941.ol8LcT9Y-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/video/fbdev/offb.c:373:48: sparse: sparse: incorrect type in initializer (different base types) @@     expected restricted __be32 @@     got int @@
   drivers/video/fbdev/offb.c:373:48: sparse:     expected restricted __be32
   drivers/video/fbdev/offb.c:373:48: sparse:     got int
>> drivers/video/fbdev/offb.c:581:42: sparse: sparse: restricted __be32 degrades to integer
>> drivers/video/fbdev/offb.c:602:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int addr_prop @@     got restricted __be32 const [usertype] @@
   drivers/video/fbdev/offb.c:602:27: sparse:     expected unsigned int addr_prop
   drivers/video/fbdev/offb.c:602:27: sparse:     got restricted __be32 const [usertype]

vim +373 drivers/video/fbdev/offb.c

^1da177e4c3f41 drivers/video/offb.c       Linus Torvalds         2005-04-16  322  
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  323  static void offb_init_palette_hacks(struct fb_info *info, struct device_node *dp,
00257e0cc550c4 drivers/video/fbdev/offb.c Rob Herring            2019-01-11  324  				    unsigned long address)
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  325  {
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  326  	struct offb_par *par = (struct offb_par *) info->par;
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  327  
00257e0cc550c4 drivers/video/fbdev/offb.c Rob Herring            2019-01-11  328  	if (of_node_name_prefix(dp, "ATY,Rage128")) {
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  329  		par->cmap_adr = offb_map_reg(dp, 2, 0, 0x1fff);
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  330  		if (par->cmap_adr)
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  331  			par->cmap_type = cmap_r128;
00257e0cc550c4 drivers/video/fbdev/offb.c Rob Herring            2019-01-11  332  	} else if (of_node_name_prefix(dp, "ATY,RageM3pA") ||
00257e0cc550c4 drivers/video/fbdev/offb.c Rob Herring            2019-01-11  333  		   of_node_name_prefix(dp, "ATY,RageM3p12A")) {
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  334  		par->cmap_adr = offb_map_reg(dp, 2, 0, 0x1fff);
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  335  		if (par->cmap_adr)
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  336  			par->cmap_type = cmap_M3A;
00257e0cc550c4 drivers/video/fbdev/offb.c Rob Herring            2019-01-11  337  	} else if (of_node_name_prefix(dp, "ATY,RageM3pB")) {
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  338  		par->cmap_adr = offb_map_reg(dp, 2, 0, 0x1fff);
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  339  		if (par->cmap_adr)
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  340  			par->cmap_type = cmap_M3B;
00257e0cc550c4 drivers/video/fbdev/offb.c Rob Herring            2019-01-11  341  	} else if (of_node_name_prefix(dp, "ATY,Rage6")) {
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  342  		par->cmap_adr = offb_map_reg(dp, 1, 0, 0x1fff);
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  343  		if (par->cmap_adr)
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  344  			par->cmap_type = cmap_radeon;
00257e0cc550c4 drivers/video/fbdev/offb.c Rob Herring            2019-01-11  345  	} else if (of_node_name_prefix(dp, "ATY,")) {
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  346  		unsigned long base = address & 0xff000000UL;
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  347  		par->cmap_adr =
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  348  			ioremap(base + 0x7ff000, 0x1000) + 0xcc0;
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  349  		par->cmap_data = par->cmap_adr + 1;
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  350  		par->cmap_type = cmap_simple;
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  351  	} else if (dp && (of_device_is_compatible(dp, "pci1014,b7") ||
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  352  			  of_device_is_compatible(dp, "pci1014,21c"))) {
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  353  		par->cmap_adr = offb_map_reg(dp, 0, 0x6000, 0x1000);
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  354  		if (par->cmap_adr)
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  355  			par->cmap_type = cmap_gxt2000;
00257e0cc550c4 drivers/video/fbdev/offb.c Rob Herring            2019-01-11  356  	} else if (of_node_name_prefix(dp, "vga,Display-")) {
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  357  		/* Look for AVIVO initialized by SLOF */
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  358  		struct device_node *pciparent = of_get_parent(dp);
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  359  		const u32 *vid, *did;
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  360  		vid = of_get_property(pciparent, "vendor-id", NULL);
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  361  		did = of_get_property(pciparent, "device-id", NULL);
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  362  		/* This will match most R5xx */
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  363  		if (vid && did && *vid == 0x1002 &&
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  364  		    ((*did >= 0x7100 && *did < 0x7800) ||
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  365  		     (*did >= 0x9400))) {
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  366  			par->cmap_adr = offb_map_reg(pciparent, 2, 0, 0x10000);
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  367  			if (par->cmap_adr)
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  368  				par->cmap_type = cmap_avivo;
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  369  		}
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  370  		of_node_put(pciparent);
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  371  	} else if (dp && of_device_is_compatible(dp, "qemu,std-vga")) {
212c0cbd5be721 drivers/video/offb.c       Cedric Le Goater       2013-12-04  372  #ifdef __BIG_ENDIAN
212c0cbd5be721 drivers/video/offb.c       Cedric Le Goater       2013-12-04 @373  		const __be32 io_of_addr[3] = { 0x01000000, 0x0, 0x0 };
212c0cbd5be721 drivers/video/offb.c       Cedric Le Goater       2013-12-04  374  #else
212c0cbd5be721 drivers/video/offb.c       Cedric Le Goater       2013-12-04  375  		const __be32 io_of_addr[3] = { 0x00000001, 0x0, 0x0 };
212c0cbd5be721 drivers/video/offb.c       Cedric Le Goater       2013-12-04  376  #endif
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  377  		u64 io_addr = of_translate_address(dp, io_of_addr);
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  378  		if (io_addr != OF_BAD_ADDR) {
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  379  			par->cmap_adr = ioremap(io_addr + 0x3c8, 2);
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  380  			if (par->cmap_adr) {
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  381  				par->cmap_type = cmap_simple;
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  382  				par->cmap_data = par->cmap_adr + 1;
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  383  			}
9b961ed21a7c92 drivers/video/offb.c       Benjamin Herrenschmidt 2011-12-14  384  		}
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  385  	}
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  386  	info->fix.visual = (par->cmap_type != cmap_unknown) ?
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  387  		FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_STATIC_PSEUDOCOLOR;
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  388  }
57a20d8fb0d2a0 drivers/video/offb.c       Benjamin Herrenschmidt 2008-07-17  389  

:::::: The code at line 373 was first introduced by commit
:::::: 212c0cbd5be721a39ef3e2f723e0c78008f9e955 offb: Little endian fixes

:::::: TO: Cedric Le Goater <clg@...ibm.com>
:::::: CC: Benjamin Herrenschmidt <benh@...nel.crashing.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ