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]
Date:   Mon, 24 Aug 2020 17:03:18 +0800
From:   kernel test robot <lkp@...el.com>
To:     Luc Van Oostenryck <luc.vanoostenryck@...il.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: drivers/ata/pata_cmd64x.c:283:22: sparse: sparse: cast removes
 address space '__iomem' of expression

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   d012a7190fc1fd72ed48911e77ca97ba4521bccd
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date:   10 weeks ago
config: riscv-randconfig-s032-20200824 (attached as .config)
compiler: riscv64-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.2-191-g10164920-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # 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=riscv 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/ata/pata_cmd64x.c:283:22: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/ata/pata_cmd64x.c:283:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
>> drivers/ata/pata_cmd64x.c:283:22: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/ata/pata_cmd64x.c:283:22: sparse:     got void *
   drivers/ata/pata_cmd64x.c:305:20: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/ata/pata_cmd64x.c:305:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/ata/pata_cmd64x.c:305:20: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/ata/pata_cmd64x.c:305:20: sparse:     got void *
   drivers/ata/pata_cmd64x.c:307:9: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/ata/pata_cmd64x.c:307:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
>> drivers/ata/pata_cmd64x.c:307:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/ata/pata_cmd64x.c:307:9: sparse:     got void *
--
>> drivers/ata/pata_cypress.c:106:9: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/ata/pata_cypress.c:106:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
>> drivers/ata/pata_cypress.c:106:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/ata/pata_cypress.c:106:9: sparse:     got void *
   drivers/ata/pata_cypress.c:107:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/ata/pata_cypress.c:107:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/ata/pata_cypress.c:107:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/ata/pata_cypress.c:107:9: sparse:     got void *
   drivers/ata/pata_cypress.c:110:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/ata/pata_cypress.c:110:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/ata/pata_cypress.c:110:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/ata/pata_cypress.c:110:9: sparse:     got void *
   drivers/ata/pata_cypress.c:111:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/ata/pata_cypress.c:111:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/ata/pata_cypress.c:111:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/ata/pata_cypress.c:111:9: sparse:     got void *
--
>> drivers/ata/pata_optidma.c:379:9: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/ata/pata_optidma.c:379:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
>> drivers/ata/pata_optidma.c:379:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/ata/pata_optidma.c:379:9: sparse:     got void *
   drivers/ata/pata_optidma.c:381:14: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/ata/pata_optidma.c:381:14: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
>> drivers/ata/pata_optidma.c:381:14: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/ata/pata_optidma.c:381:14: sparse:     got void *
   drivers/ata/pata_optidma.c:423:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/ata/pata_optidma.c:423:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/ata/pata_optidma.c:423:9: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/ata/pata_optidma.c:423:9: sparse:     got void *
   drivers/ata/pata_optidma.c:424:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/ata/pata_optidma.c:424:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/ata/pata_optidma.c:424:9: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/ata/pata_optidma.c:424:9: sparse:     got void *
   drivers/ata/pata_optidma.c:425:21: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/ata/pata_optidma.c:425:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
   drivers/ata/pata_optidma.c:425:21: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/ata/pata_optidma.c:425:21: sparse:     got void *
--
>> drivers/media/radio/radio-maxiradio.c:94:9: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/media/radio/radio-maxiradio.c:94:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
>> drivers/media/radio/radio-maxiradio.c:94:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/media/radio/radio-maxiradio.c:94:9: sparse:     got void *
   drivers/media/radio/radio-maxiradio.c:102:19: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/media/radio/radio-maxiradio.c:102:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got void * @@
>> drivers/media/radio/radio-maxiradio.c:102:19: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/media/radio/radio-maxiradio.c:102:19: sparse:     got void *
   drivers/media/radio/radio-maxiradio.c:184:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/media/radio/radio-maxiradio.c:184:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got void * @@
   drivers/media/radio/radio-maxiradio.c:184:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/media/radio/radio-maxiradio.c:184:9: sparse:     got void *
--
>> drivers/video/fbdev/nvidia/nvidia.c:1411: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:1411:20: sparse:     expected void [noderef] __iomem *addr
   drivers/video/fbdev/nvidia/nvidia.c:1411:20: sparse:     got unsigned int volatile [noderef] [usertype] __iomem *REGS
   drivers/video/fbdev/nvidia/nvidia.c:1436: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:1436:20: sparse:     expected void [noderef] __iomem *addr
   drivers/video/fbdev/nvidia/nvidia.c:1436:20: sparse:     got unsigned int volatile [noderef] [usertype] __iomem *REGS

# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=670d0a4b10704667765f7d18f7592993d02783aa
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
vim +/__iomem +283 drivers/ata/pata_cmd64x.c

8a686bc984454c Sergei Shtylyov 2012-03-11  270  
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  271  /**
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  272   *	cmd648_sff_irq_check	-	check IDE interrupt
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  273   *	@ap: ATA interface
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  274   *
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  275   *	Check IDE interrupt in MRDMODE register.
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  276   */
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  277  
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  278  static bool cmd648_sff_irq_check(struct ata_port *ap)
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  279  {
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  280  	struct pci_dev *pdev = to_pci_dev(ap->host->dev);
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  281  	unsigned long base = pci_resource_start(pdev, 4);
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  282  	int irq_mask = ap->port_no ? MRDMODE_INTR_CH1 : MRDMODE_INTR_CH0;
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11 @283  	u8 mrdmode = inb(base + 1);
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  284  
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  285  	return mrdmode & irq_mask;
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  286  }
b8cec3c253a2a0 Sergei Shtylyov 2012-03-11  287  
8a686bc984454c Sergei Shtylyov 2012-03-11  288  /**
419fd2461354f7 Sergei Shtylyov 2012-03-11  289   *	cmd648_sff_irq_clear	-	clear IDE interrupt
419fd2461354f7 Sergei Shtylyov 2012-03-11  290   *	@ap: ATA interface
669a5db411d85a Jeff Garzik     2006-08-29  291   *
419fd2461354f7 Sergei Shtylyov 2012-03-11  292   *	Clear IDE interrupt in MRDMODE and DMA status registers.
669a5db411d85a Jeff Garzik     2006-08-29  293   */
669a5db411d85a Jeff Garzik     2006-08-29  294  
419fd2461354f7 Sergei Shtylyov 2012-03-11  295  static void cmd648_sff_irq_clear(struct ata_port *ap)
669a5db411d85a Jeff Garzik     2006-08-29  296  {
669a5db411d85a Jeff Garzik     2006-08-29  297  	struct pci_dev *pdev = to_pci_dev(ap->host->dev);
8a686bc984454c Sergei Shtylyov 2012-03-11  298  	unsigned long base = pci_resource_start(pdev, 4);
8a686bc984454c Sergei Shtylyov 2012-03-11  299  	int irq_mask = ap->port_no ? MRDMODE_INTR_CH1 : MRDMODE_INTR_CH0;
8a686bc984454c Sergei Shtylyov 2012-03-11  300  	u8 mrdmode;
669a5db411d85a Jeff Garzik     2006-08-29  301  
419fd2461354f7 Sergei Shtylyov 2012-03-11  302  	ata_bmdma_irq_clear(ap);
669a5db411d85a Jeff Garzik     2006-08-29  303  
8a686bc984454c Sergei Shtylyov 2012-03-11  304  	/* Clear this port's interrupt bit (leaving the other port alone) */
8a686bc984454c Sergei Shtylyov 2012-03-11  305  	mrdmode  = inb(base + 1);
8a686bc984454c Sergei Shtylyov 2012-03-11  306  	mrdmode &= ~(MRDMODE_INTR_CH0 | MRDMODE_INTR_CH1);
8a686bc984454c Sergei Shtylyov 2012-03-11 @307  	outb(mrdmode | irq_mask, base + 1);
669a5db411d85a Jeff Garzik     2006-08-29  308  }
669a5db411d85a Jeff Garzik     2006-08-29  309  

:::::: The code at line 283 was first introduced by commit
:::::: b8cec3c253a2a001e463c43260fb75fb3223a04d pata_cmd64x: implement sff_irq_check() method

:::::: TO: Sergei Shtylyov <sshtylyov@...mvista.com>
:::::: CC: Jeff Garzik <jgarzik@...hat.com>

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

Download attachment ".config.gz" of type "application/gzip" (27015 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ