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 for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:   Mon, 3 Jul 2023 18:07:24 +0800
From:   kernel test robot <lkp@...el.com>
To:     Dave Airlie <airlied@...hat.com>
Cc:     oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
        Thomas Zimmermann <tzimmermann@...e.de>
Subject: drivers/video/fbdev/nvidia/nvidia.c:1429:17: sparse: sparse:
 incorrect type in argument 1 (different modifiers)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   a901a3568fd26ca9c4a82d8bc5ed5b3ed844d451
commit: 04119ab1a49fc41cb70f0472be5455af268fa260 nvidiafb: detect the hardware support before removing console.
date:   5 months ago
config: m68k-randconfig-r093-20230703 (https://download.01.org/0day-ci/archive/20230703/202307031845.mKhIIAwz-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230703/202307031845.mKhIIAwz-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307031845.mKhIIAwz-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/video/fbdev/nvidia/nvidia.c:1429:17: sparse: sparse: incorrect type in argument 1 (different modifiers) @@     expected void [noderef] __iomem *addr @@     got unsigned int volatile [noderef] [usertype] __iomem *[assigned] REGS @@
   drivers/video/fbdev/nvidia/nvidia.c:1429:17: sparse:     expected void [noderef] __iomem *addr
   drivers/video/fbdev/nvidia/nvidia.c:1429:17: sparse:     got unsigned int volatile [noderef] [usertype] __iomem *[assigned] REGS
   drivers/video/fbdev/nvidia/nvidia.c:1447:20: sparse: sparse: incorrect type in argument 1 (different modifiers) @@     expected void [noderef] __iomem *addr @@     got unsigned int volatile [noderef] [usertype] __iomem *REGS @@
   drivers/video/fbdev/nvidia/nvidia.c:1447:20: sparse:     expected void [noderef] __iomem *addr
   drivers/video/fbdev/nvidia/nvidia.c:1447:20: sparse:     got unsigned int volatile [noderef] [usertype] __iomem *REGS

vim +1429 drivers/video/fbdev/nvidia/nvidia.c

  1273	
  1274	static int nvidiafb_probe(struct pci_dev *pd, const struct pci_device_id *ent)
  1275	{
  1276		struct nvidia_par *par;
  1277		struct fb_info *info;
  1278		unsigned short cmd;
  1279		int ret;
  1280		volatile u32 __iomem *REGS;
  1281		int Chipset;
  1282		u32 Architecture;
  1283	
  1284		NVTRACE_ENTER();
  1285		assert(pd != NULL);
  1286	
  1287		if (pci_enable_device(pd)) {
  1288			printk(KERN_ERR PFX "cannot enable PCI device\n");
  1289			return -ENODEV;
  1290		}
  1291	
  1292		/* enable IO and mem if not already done */
  1293		pci_read_config_word(pd, PCI_COMMAND, &cmd);
  1294		cmd |= (PCI_COMMAND_IO | PCI_COMMAND_MEMORY);
  1295		pci_write_config_word(pd, PCI_COMMAND, cmd);
  1296	
  1297		nvidiafb_fix.mmio_start = pci_resource_start(pd, 0);
  1298		nvidiafb_fix.mmio_len = pci_resource_len(pd, 0);
  1299	
  1300		REGS = ioremap(nvidiafb_fix.mmio_start, nvidiafb_fix.mmio_len);
  1301		if (!REGS) {
  1302			printk(KERN_ERR PFX "cannot ioremap MMIO base\n");
  1303			return -ENODEV;
  1304		}
  1305	
  1306		Chipset = nvidia_get_chipset(pd, REGS);
  1307		Architecture = nvidia_get_arch(Chipset);
  1308		if (Architecture == 0) {
  1309			printk(KERN_ERR PFX "unknown NV_ARCH\n");
  1310			goto err_out;
  1311		}
  1312	
  1313		ret = aperture_remove_conflicting_pci_devices(pd, "nvidiafb");
  1314		if (ret)
  1315			goto err_out;
  1316	
  1317		info = framebuffer_alloc(sizeof(struct nvidia_par), &pd->dev);
  1318		if (!info)
  1319			goto err_out;
  1320	
  1321		par = info->par;
  1322		par->pci_dev = pd;
  1323		info->pixmap.addr = kzalloc(8 * 1024, GFP_KERNEL);
  1324	
  1325		if (info->pixmap.addr == NULL)
  1326			goto err_out_kfree;
  1327	
  1328		if (pci_request_regions(pd, "nvidiafb")) {
  1329			printk(KERN_ERR PFX "cannot request PCI regions\n");
  1330			goto err_out_enable;
  1331		}
  1332	
  1333		par->FlatPanel = flatpanel;
  1334		if (flatpanel == 1)
  1335			printk(KERN_INFO PFX "flatpanel support enabled\n");
  1336		par->FPDither = fpdither;
  1337	
  1338		par->CRTCnumber = forceCRTC;
  1339		par->FpScale = (!noscale);
  1340		par->paneltweak = paneltweak;
  1341		par->reverse_i2c = reverse_i2c;
  1342	
  1343		nvidiafb_fix.smem_start = pci_resource_start(pd, 1);
  1344	
  1345		par->REGS = REGS;
  1346	
  1347		par->Chipset = Chipset;
  1348		par->Architecture = Architecture;
  1349	
  1350		sprintf(nvidiafb_fix.id, "NV%x", (pd->device & 0x0ff0) >> 4);
  1351	
  1352		if (NVCommonSetup(info))
  1353			goto err_out_free_base0;
  1354	
  1355		par->FbAddress = nvidiafb_fix.smem_start;
  1356		par->FbMapSize = par->RamAmountKBytes * 1024;
  1357		if (vram && vram * 1024 * 1024 < par->FbMapSize)
  1358			par->FbMapSize = vram * 1024 * 1024;
  1359	
  1360		/* Limit amount of vram to 64 MB */
  1361		if (par->FbMapSize > 64 * 1024 * 1024)
  1362			par->FbMapSize = 64 * 1024 * 1024;
  1363	
  1364		if(par->Architecture >= NV_ARCH_40)
  1365	  	        par->FbUsableSize = par->FbMapSize - (560 * 1024);
  1366		else
  1367			par->FbUsableSize = par->FbMapSize - (128 * 1024);
  1368		par->ScratchBufferSize = (par->Architecture < NV_ARCH_10) ? 8 * 1024 :
  1369		    16 * 1024;
  1370		par->ScratchBufferStart = par->FbUsableSize - par->ScratchBufferSize;
  1371		par->CursorStart = par->FbUsableSize + (32 * 1024);
  1372	
  1373		info->screen_base = ioremap_wc(nvidiafb_fix.smem_start,
  1374					       par->FbMapSize);
  1375		info->screen_size = par->FbUsableSize;
  1376		nvidiafb_fix.smem_len = par->RamAmountKBytes * 1024;
  1377	
  1378		if (!info->screen_base) {
  1379			printk(KERN_ERR PFX "cannot ioremap FB base\n");
  1380			goto err_out_free_base1;
  1381		}
  1382	
  1383		par->FbStart = info->screen_base;
  1384	
  1385		if (!nomtrr)
  1386			par->wc_cookie = arch_phys_wc_add(nvidiafb_fix.smem_start,
  1387							  par->RamAmountKBytes * 1024);
  1388	
  1389		info->fbops = &nvidia_fb_ops;
  1390		info->fix = nvidiafb_fix;
  1391	
  1392		if (nvidia_set_fbinfo(info) < 0) {
  1393			printk(KERN_ERR PFX "error setting initial video mode\n");
  1394			goto err_out_iounmap_fb;
  1395		}
  1396	
  1397		nvidia_save_vga(par, &par->SavedReg);
  1398	
  1399		pci_set_drvdata(pd, info);
  1400	
  1401		if (backlight)
  1402			nvidia_bl_init(par);
  1403	
  1404		if (register_framebuffer(info) < 0) {
  1405			printk(KERN_ERR PFX "error registering nVidia framebuffer\n");
  1406			goto err_out_iounmap_fb;
  1407		}
  1408	
  1409		printk(KERN_INFO PFX
  1410		       "PCI nVidia %s framebuffer (%dMB @ 0x%lX)\n",
  1411		       info->fix.id,
  1412		       par->FbMapSize / (1024 * 1024), info->fix.smem_start);
  1413	
  1414		NVTRACE_LEAVE();
  1415		return 0;
  1416	
  1417	err_out_iounmap_fb:
  1418		iounmap(info->screen_base);
  1419	err_out_free_base1:
  1420		fb_destroy_modedb(info->monspecs.modedb);
  1421		nvidia_delete_i2c_busses(par);
  1422	err_out_free_base0:
  1423		pci_release_regions(pd);
  1424	err_out_enable:
  1425		kfree(info->pixmap.addr);
  1426	err_out_kfree:
  1427		framebuffer_release(info);
  1428	err_out:
> 1429		iounmap(REGS);
  1430		return -ENODEV;
  1431	}
  1432	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ