tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   3e08a95294a4fb3702bb3d35ed08028433c37fe6
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to 
define address spaces
date:   6 days ago
config: arm-randconfig-s031-20200624 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.2-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=arm CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)

   drivers/pci/switch/switchtec.c:943:31: sparse: sparse: incorrect type in 
return expression (different address spaces) @@     expected unsigned int 
[noderef] [usertype] __iomem * @@     got void * @@
   drivers/pci/switch/switchtec.c:943:31: sparse:     expected unsigned int 
[noderef] [usertype] __iomem *
   drivers/pci/switch/switchtec.c:943:31: sparse:     got void *
   drivers/pci/switch/switchtec.c:951:39: sparse: sparse: incorrect type in 
return expression (different address spaces) @@     expected unsigned int 
[noderef] [usertype] __iomem * @@     got void * @@
   drivers/pci/switch/switchtec.c:951:39: sparse:     expected unsigned int 
[noderef] [usertype] __iomem *
   drivers/pci/switch/switchtec.c:951:39: sparse:     got void *
   drivers/pci/switch/switchtec.c:954:39: sparse: sparse: incorrect type in 
return expression (different address spaces) @@     expected unsigned int 
[noderef] [usertype] __iomem * @@     got void * @@
   drivers/pci/switch/switchtec.c:954:39: sparse:     expected unsigned int 
[noderef] [usertype] __iomem *
   drivers/pci/switch/switchtec.c:954:39: sparse:     got void *
   drivers/pci/switch/switchtec.c:1067:32: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void const [noderef] 
__user *from @@     got struct switchtec_ioctl_pff_port *up @@
   drivers/pci/switch/switchtec.c:1067:32: sparse:     expected void const 
[noderef] __user *from
   drivers/pci/switch/switchtec.c:1067:32: sparse:     got struct 
switchtec_ioctl_pff_port *up
   drivers/pci/switch/switchtec.c:1072:22: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected struct part_cfg_regs 
*pcfg @@     got struct part_cfg_regs [noderef] __iomem * @@
   drivers/pci/switch/switchtec.c:1072:22: sparse:     expected struct 
part_cfg_regs *pcfg
   drivers/pci/switch/switchtec.c:1072:22: sparse:     got struct part_cfg_regs 
[noderef] __iomem *
>> drivers/pci/switch/switchtec.c:1075:23: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void const [noderef] 
>> __iomem *addr @@     got unsigned int * @@
>> drivers/pci/switch/switchtec.c:1075:23: sparse:     expected void const 
>> [noderef] __iomem *addr
   drivers/pci/switch/switchtec.c:1075:23: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1081:23: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const [noderef] 
__iomem *addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1081:23: sparse:     expected void const 
[noderef] __iomem *addr
   drivers/pci/switch/switchtec.c:1081:23: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1088:31: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const [noderef] 
__iomem *addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1088:31: sparse:     expected void const 
[noderef] __iomem *addr
   drivers/pci/switch/switchtec.c:1088:31: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1100:26: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __user *to 
@@     got struct switchtec_ioctl_pff_port *up @@
   drivers/pci/switch/switchtec.c:1100:26: sparse:     expected void [noderef] 
__user *to
   drivers/pci/switch/switchtec.c:1100:26: sparse:     got struct 
switchtec_ioctl_pff_port *up
   drivers/pci/switch/switchtec.c:1112:32: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void const [noderef] 
__user *from @@     got struct switchtec_ioctl_pff_port *up @@
   drivers/pci/switch/switchtec.c:1112:32: sparse:     expected void const 
[noderef] __user *from
   drivers/pci/switch/switchtec.c:1112:32: sparse:     got struct 
switchtec_ioctl_pff_port *up
   drivers/pci/switch/switchtec.c:1116:22: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected struct part_cfg_regs 
*pcfg @@     got struct part_cfg_regs [noderef] __iomem *mmio_part_cfg @@
   drivers/pci/switch/switchtec.c:1116:22: sparse:     expected struct 
part_cfg_regs *pcfg
   drivers/pci/switch/switchtec.c:1116:22: sparse:     got struct part_cfg_regs 
[noderef] __iomem *mmio_part_cfg
   drivers/pci/switch/switchtec.c:1118:22: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected struct part_cfg_regs 
*pcfg @@     got struct part_cfg_regs [noderef] __iomem * @@
   drivers/pci/switch/switchtec.c:1118:22: sparse:     expected struct 
part_cfg_regs *pcfg
   drivers/pci/switch/switchtec.c:1118:22: sparse:     got struct part_cfg_regs 
[noderef] __iomem *
   drivers/pci/switch/switchtec.c:1124:25: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const [noderef] 
__iomem *addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1124:25: sparse:     expected void const 
[noderef] __iomem *addr
   drivers/pci/switch/switchtec.c:1124:25: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1127:25: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const [noderef] 
__iomem *addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1127:25: sparse:     expected void const 
[noderef] __iomem *addr
   drivers/pci/switch/switchtec.c:1127:25: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1134:25: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const [noderef] 
__iomem *addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1134:25: sparse:     expected void const 
[noderef] __iomem *addr
   drivers/pci/switch/switchtec.c:1134:25: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1138:26: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __user *to 
@@     got struct switchtec_ioctl_pff_port *up @@
   drivers/pci/switch/switchtec.c:1138:26: sparse:     expected void [noderef] 
__user *to
   drivers/pci/switch/switchtec.c:1138:26: sparse:     got struct 
switchtec_ioctl_pff_port *up
   drivers/pci/switch/switchtec.c:1171:47: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected struct 
switchtec_ioctl_pff_port *up @@     got void [noderef] __user *argp @@
   drivers/pci/switch/switchtec.c:1171:47: sparse:     expected struct 
switchtec_ioctl_pff_port *up
   drivers/pci/switch/switchtec.c:1171:47: sparse:     got void [noderef] 
__user *argp
   drivers/pci/switch/switchtec.c:1174:47: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected struct 
switchtec_ioctl_pff_port *up @@     got void [noderef] __user *argp @@
   drivers/pci/switch/switchtec.c:1174:47: sparse:     expected struct 
switchtec_ioctl_pff_port *up
   drivers/pci/switch/switchtec.c:1174:47: sparse:     got void [noderef] 
__user *argp
   drivers/pci/switch/switchtec.c:1487:43: sparse: sparse: incorrect type in 
initializer (different address spaces) @@     expected struct part_cfg_regs 
*pcfg @@     got struct part_cfg_regs [noderef] __iomem *mmio_part_cfg @@
   drivers/pci/switch/switchtec.c:1487:43: sparse:     expected struct 
part_cfg_regs *pcfg
   drivers/pci/switch/switchtec.c:1487:43: sparse:     got struct part_cfg_regs 
[noderef] __iomem *mmio_part_cfg
   drivers/pci/switch/switchtec.c:1497:15: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const [noderef] 
__iomem *addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1497:15: sparse:     expected void const 
[noderef] __iomem *addr
   drivers/pci/switch/switchtec.c:1497:15: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1501:15: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const [noderef] 
__iomem *addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1501:15: sparse:     expected void const 
[noderef] __iomem *addr
   drivers/pci/switch/switchtec.c:1501:15: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1506:23: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void const [noderef] 
__iomem *addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1506:23: sparse:     expected void const 
[noderef] __iomem *addr
   drivers/pci/switch/switchtec.c:1506:23: sparse:     got unsigned int *
--
>> fs/pstore/ram_core.c:278:9: sparse: sparse: incorrect type in argument 1 
>> (different address spaces) @@     expected void volatile [noderef] __iomem 
>> *to @@     got unsigned char * @@
>> fs/pstore/ram_core.c:278:9: sparse:     expected void volatile [noderef] 
>> __iomem *to
   fs/pstore/ram_core.c:278:9: sparse:     got unsigned char *
>> fs/pstore/ram_core.c:311:9: sparse: sparse: incorrect type in argument 2 
>> (different address spaces) @@     expected void const volatile [noderef] 
>> __iomem *from @@     got unsigned char * @@
>> fs/pstore/ram_core.c:311:9: sparse:     expected void const volatile 
>> [noderef] __iomem *from
   fs/pstore/ram_core.c:311:9: sparse:     got unsigned char *
   fs/pstore/ram_core.c:312:9: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected void const volatile [noderef] 
__iomem *from @@     got unsigned char * @@
   fs/pstore/ram_core.c:312:9: sparse:     expected void const volatile 
[noderef] __iomem *from
   fs/pstore/ram_core.c:312:9: sparse:     got unsigned char *
   fs/pstore/ram_core.c:452:20: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected void *va @@     got void [noderef] 
__iomem * @@
   fs/pstore/ram_core.c:452:20: sparse:     expected void *va
   fs/pstore/ram_core.c:452:20: sparse:     got void [noderef] __iomem *
   fs/pstore/ram_core.c:454:20: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected void *va @@     got void [noderef] 
__iomem * @@
   fs/pstore/ram_core.c:454:20: sparse:     expected void *va
   fs/pstore/ram_core.c:454:20: sparse:     got void [noderef] __iomem *
>> fs/pstore/ram_core.c:542:36: sparse: sparse: incorrect type in argument 1 
>> (different address spaces) @@     expected void volatile [noderef] __iomem 
>> *iomem_cookie @@     got void *vaddr @@
>> fs/pstore/ram_core.c:542:36: sparse:     expected void volatile [noderef] 
>> __iomem *iomem_cookie
   fs/pstore/ram_core.c:542:36: sparse:     got void *vaddr
   fs/pstore/ram_core.c:69:17: sparse: sparse: context imbalance in 
'buffer_start_add' - unexpected unlock
   fs/pstore/ram_core.c:95:17: sparse: sparse: context imbalance in 
'buffer_size_add' - unexpected unlock
--
   drivers/video/fbdev/aty/atyfb_base.c:475:9: sparse: sparse: switch with no 
cases
>> drivers/video/fbdev/aty/atyfb_base.c:3715:37: sparse: sparse: incorrect type 
>> in argument 1 (different address spaces) @@     expected void volatile 
>> [noderef] __iomem *iomem_cookie @@     got unsigned char [usertype] *addr @@
>> drivers/video/fbdev/aty/atyfb_base.c:3715:37: sparse:     expected void 
>> volatile [noderef] __iomem *iomem_cookie
   drivers/video/fbdev/aty/atyfb_base.c:3715:37: sparse:     got unsigned char 
[usertype] *addr
--
   drivers/gpu/drm/ttm/ttm_bo_util.c:219:30: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected void *[assigned] addr @@  
   got void [noderef] __iomem * @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:219:30: sparse:     expected void 
*[assigned] addr
   drivers/gpu/drm/ttm/ttm_bo_util.c:219:30: sparse:     got void [noderef] 
__iomem *
   drivers/gpu/drm/ttm/ttm_bo_util.c:221:30: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected void *[assigned] addr @@  
   got void [noderef] __iomem * @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:221:30: sparse:     expected void 
*[assigned] addr
   drivers/gpu/drm/ttm/ttm_bo_util.c:221:30: sparse:     got void [noderef] 
__iomem *
   drivers/gpu/drm/ttm/ttm_bo_util.c:241:25: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void volatile [noderef] 
__iomem *iomem_cookie @@     got void *virtual @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:241:25: sparse:     expected void volatile 
[noderef] __iomem *iomem_cookie
   drivers/gpu/drm/ttm/ttm_bo_util.c:241:25: sparse:     got void *virtual
>> drivers/gpu/drm/ttm/ttm_bo_util.c:256:17: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void const [noderef] 
>> __iomem *addr @@     got unsigned int [usertype] * @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:256:17: sparse:     expected void const 
[noderef] __iomem *addr
   drivers/gpu/drm/ttm/ttm_bo_util.c:256:17: sparse:     got unsigned int 
[usertype] *
   drivers/gpu/drm/ttm/ttm_bo_util.c:256:17: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void [noderef] __iomem 
*addr @@     got unsigned int [usertype] * @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:256:17: sparse:     expected void 
[noderef] __iomem *addr
   drivers/gpu/drm/ttm/ttm_bo_util.c:256:17: sparse:     got unsigned int 
[usertype] *
   drivers/gpu/drm/ttm/ttm_bo_util.c:275:9: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void const volatile 
[noderef] __iomem *from @@     got void *[assigned] src @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:275:9: sparse:     expected void const 
volatile [noderef] __iomem *from
   drivers/gpu/drm/ttm/ttm_bo_util.c:275:9: sparse:     got void *[assigned] src
   drivers/gpu/drm/ttm/ttm_bo_util.c:297:9: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void volatile [noderef] 
__iomem *to @@     got void *[assigned] dst @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:297:9: sparse:     expected void volatile 
[noderef] __iomem *to
   drivers/gpu/drm/ttm/ttm_bo_util.c:297:9: sparse:     got void *[assigned] dst
   drivers/gpu/drm/ttm/ttm_bo_util.c:344:17: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void volatile [noderef] 
__iomem *dst @@     got void *[addressable] new_iomap @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:344:17: sparse:     expected void volatile 
[noderef] __iomem *dst
   drivers/gpu/drm/ttm/ttm_bo_util.c:344:17: sparse:     got void 
*[addressable] new_iomap
   drivers/gpu/drm/ttm/ttm_bo_util.c:516:38: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected void *virtual @@     got 
void [noderef] __iomem * @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:516:38: sparse:     expected void *virtual
   drivers/gpu/drm/ttm/ttm_bo_util.c:516:38: sparse:     got void [noderef] 
__iomem *
   drivers/gpu/drm/ttm/ttm_bo_util.c:519:38: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected void *virtual @@     got 
void [noderef] __iomem * @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:519:38: sparse:     expected void *virtual
   drivers/gpu/drm/ttm/ttm_bo_util.c:519:38: sparse:     got void [noderef] 
__iomem *
   drivers/gpu/drm/ttm/ttm_bo_util.c:608:28: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void volatile [noderef] 
__iomem *iomem_cookie @@     got void *virtual @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:608:28: sparse:     expected void volatile 
[noderef] __iomem *iomem_cookie
   drivers/gpu/drm/ttm/ttm_bo_util.c:608:28: sparse:     got void *virtual
--
>> drivers/watchdog/ixp4xx_wdt.c:45:10: sparse: sparse: cast removes address 
>> space '__iomem' of expression
   drivers/watchdog/ixp4xx_wdt.c:46:10: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/watchdog/ixp4xx_wdt.c:47:10: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/watchdog/ixp4xx_wdt.c:48:10: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/watchdog/ixp4xx_wdt.c:49:10: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/watchdog/ixp4xx_wdt.c:56:10: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/watchdog/ixp4xx_wdt.c:57:10: sparse: sparse: cast removes address 
space '__iomem' of expression
   drivers/watchdog/ixp4xx_wdt.c:58:10: sparse: sparse: cast removes address 
space '__iomem' of expression
>> drivers/watchdog/ixp4xx_wdt.c:84:37: sparse: sparse: incorrect type in 
>> initializer (different address spaces) @@     expected char const [noderef] 
>> __user *register __p @@     got char const * @@
>> drivers/watchdog/ixp4xx_wdt.c:84:37: sparse:     expected char const 
>> [noderef] __user *register __p
   drivers/watchdog/ixp4xx_wdt.c:84:37: sparse:     got char const *
>> drivers/watchdog/ixp4xx_wdt.c:110:37: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void [noderef] __user 
>> *to @@     got struct watchdog_info * @@
>> drivers/watchdog/ixp4xx_wdt.c:110:37: sparse:     expected void [noderef] 
>> __user *to
   drivers/watchdog/ixp4xx_wdt.c:110:37: sparse:     got struct watchdog_info *
>> drivers/watchdog/ixp4xx_wdt.c:115:23: sparse: sparse: incorrect type in 
>> initializer (different address spaces) @@     expected int const [noderef] 
>> __user *__pu_ptr @@     got int * @@
>> drivers/watchdog/ixp4xx_wdt.c:115:23: sparse:     expected int const 
>> [noderef] __user *__pu_ptr
   drivers/watchdog/ixp4xx_wdt.c:115:23: sparse:     got int *
   drivers/watchdog/ixp4xx_wdt.c:119:23: sparse: sparse: incorrect type in 
initializer (different address spaces) @@     expected int const [noderef] 
__user *__pu_ptr @@     got int * @@
   drivers/watchdog/ixp4xx_wdt.c:119:23: sparse:     expected int const 
[noderef] __user *__pu_ptr
   drivers/watchdog/ixp4xx_wdt.c:119:23: sparse:     got int *
>> drivers/watchdog/ixp4xx_wdt.c:128:23: sparse: sparse: incorrect type in 
>> initializer (different address spaces) @@     expected int [noderef] __user 
>> *register __p @@     got int * @@
>> drivers/watchdog/ixp4xx_wdt.c:128:23: sparse:     expected int [noderef] 
>> __user *register __p
   drivers/watchdog/ixp4xx_wdt.c:128:23: sparse:     got int *
   drivers/watchdog/ixp4xx_wdt.c:142:23: sparse: sparse: incorrect type in 
initializer (different address spaces) @@     expected int const [noderef] 
__user *__pu_ptr @@     got int * @@
   drivers/watchdog/ixp4xx_wdt.c:142:23: sparse:     expected int const 
[noderef] __user *__pu_ptr
   drivers/watchdog/ixp4xx_wdt.c:142:23: sparse:     got int *
   drivers/watchdog/ixp4xx_wdt.c:164:27: sparse: sparse: incorrect type in 
initializer (incompatible argument 2 (different address spaces)) @@     
expected int ( *write )( ... ) @@     got int ( * )( ... ) @@
   drivers/watchdog/ixp4xx_wdt.c:164:27: sparse:     expected int ( *write )( 
... )
   drivers/watchdog/ixp4xx_wdt.c:164:27: sparse:     got int ( * )( ... )
   drivers/watchdog/ixp4xx_wdt.c:194:25: sparse: sparse: cast removes address 
space '__iomem' of expression
--
   drivers/gpu/drm/qxl/qxl_kms.c:36:5: sparse: sparse: symbol 'qxl_log_level' 
was not declared. Should it be static?
   drivers/gpu/drm/qxl/qxl_kms.c:170:19: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected struct qxl_rom *rom @@    
 got void [noderef] __iomem * @@
   drivers/gpu/drm/qxl/qxl_kms.c:170:19: sparse:     expected struct qxl_rom 
*rom
   drivers/gpu/drm/qxl/qxl_kms.c:170:19: sparse:     got void [noderef] __iomem 
*
   drivers/gpu/drm/qxl/qxl_kms.c:188:26: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected struct qxl_ram_header 
*ram_header @@     got void [noderef] __iomem * @@
   drivers/gpu/drm/qxl/qxl_kms.c:188:26: sparse:     expected struct 
qxl_ram_header *ram_header
   drivers/gpu/drm/qxl/qxl_kms.c:188:26: sparse:     got void [noderef] __iomem 
*
>> drivers/gpu/drm/qxl/qxl_kms.c:277:21: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void volatile 
>> [noderef] __iomem *iomem_cookie @@     got struct qxl_ram_header *ram_header 
>> @@
>> drivers/gpu/drm/qxl/qxl_kms.c:277:21: sparse:     expected void volatile 
>> [noderef] __iomem *iomem_cookie
   drivers/gpu/drm/qxl/qxl_kms.c:277:21: sparse:     got struct qxl_ram_header 
*ram_header
>> drivers/gpu/drm/qxl/qxl_kms.c:281:21: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void volatile 
>> [noderef] __iomem *iomem_cookie @@     got struct qxl_rom *rom @@
   drivers/gpu/drm/qxl/qxl_kms.c:281:21: sparse:     expected void volatile 
[noderef] __iomem *iomem_cookie
   drivers/gpu/drm/qxl/qxl_kms.c:281:21: sparse:     got struct qxl_rom *rom
   drivers/gpu/drm/qxl/qxl_kms.c:301:21: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void volatile [noderef] 
__iomem *iomem_cookie @@     got struct qxl_ram_header *ram_header @@
   drivers/gpu/drm/qxl/qxl_kms.c:301:21: sparse:     expected void volatile 
[noderef] __iomem *iomem_cookie
   drivers/gpu/drm/qxl/qxl_kms.c:301:21: sparse:     got struct qxl_ram_header 
*ram_header
   drivers/gpu/drm/qxl/qxl_kms.c:302:21: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void volatile [noderef] 
__iomem *iomem_cookie @@     got struct qxl_rom *rom @@
   drivers/gpu/drm/qxl/qxl_kms.c:302:21: sparse:     expected void volatile 
[noderef] __iomem *iomem_cookie
   drivers/gpu/drm/qxl/qxl_kms.c:302:21: sparse:     got struct qxl_rom *rom
--
>> drivers/leds/leds-fsg.c:147:26: sparse: sparse: cast removes address space 
>> '__iomem' of expression
>> drivers/leds/leds-fsg.c:147:23: sparse: sparse: incorrect type in assignment 
>> (different address spaces) @@     expected short [noderef] __iomem *static 
>> [toplevel] latch_address @@     got unsigned short * @@
>> drivers/leds/leds-fsg.c:147:23: sparse:     expected short [noderef] __iomem 
>> *static [toplevel] latch_address
   drivers/leds/leds-fsg.c:147:23: sparse:     got unsigned short *
   drivers/leds/leds-fsg.c:37:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:40:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:49:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:52:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:61:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:64:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:73:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:76:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:85:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:88:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:97:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:100:18: sparse: sparse: dereference of noderef 
expression
   drivers/leds/leds-fsg.c:153:10: sparse: sparse: dereference of noderef 
expression

vim +1075 drivers/pci/switch/switchtec.c

52eabba5bcdb28 Logan Gunthorpe 2017-03-02   936  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   937  static u32 __iomem 
*event_hdr_addr(struct switchtec_dev *stdev,
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   938                                 
   int event_id, int index)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   939  {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   940         size_t off;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   941  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   942         if (event_id < 0 || 
event_id >= SWITCHTEC_IOCTL_MAX_EVENTS)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   943                 return 
ERR_PTR(-EINVAL);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   944  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   945         off = 
event_regs[event_id].offset;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   946  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   947         if 
(event_regs[event_id].map_reg == part_ev_reg) {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   948                 if (index == 
SWITCHTEC_IOCTL_EVENT_LOCAL_PART_IDX)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   949                         index = 
stdev->partition;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   950                 else if (index 
< 0 || index >= stdev->partition_count)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   951                         return 
ERR_PTR(-EINVAL);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   952         } else if 
(event_regs[event_id].map_reg == pff_ev_reg) {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   953                 if (index < 0 
|| index >= stdev->pff_csr_count)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  @954                         return 
ERR_PTR(-EINVAL);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   955         }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   956  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   957         return 
event_regs[event_id].map_reg(stdev, off, index);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   958  }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   959  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   960  static int event_ctl(struct 
switchtec_dev *stdev,
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   961                      struct 
switchtec_ioctl_event_ctl *ctl)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   962  {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   963         int i;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   964         u32 __iomem *reg;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   965         u32 hdr;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   966  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   967         reg = 
event_hdr_addr(stdev, ctl->event_id, ctl->index);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   968         if (IS_ERR(reg))
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   969                 return 
PTR_ERR(reg);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   970  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   971         hdr = ioread32(reg);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   972         for (i = 0; i < 
ARRAY_SIZE(ctl->data); i++)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   973                 ctl->data[i] = 
ioread32(&reg[i + 1]);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   974  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   975         ctl->occurred = hdr & 
SWITCHTEC_EVENT_OCCURRED;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   976         ctl->count = (hdr >> 5) 
& 0xFF;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   977  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   978         if (!(ctl->flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_CLEAR))
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   979                 hdr &= 
~SWITCHTEC_EVENT_CLEAR;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   980         if (ctl->flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_EN_POLL)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   981                 hdr |= 
SWITCHTEC_EVENT_EN_IRQ;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   982         if (ctl->flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_DIS_POLL)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   983                 hdr &= 
~SWITCHTEC_EVENT_EN_IRQ;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   984         if (ctl->flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_EN_LOG)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   985                 hdr |= 
SWITCHTEC_EVENT_EN_LOG;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   986         if (ctl->flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_DIS_LOG)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   987                 hdr &= 
~SWITCHTEC_EVENT_EN_LOG;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   988         if (ctl->flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_EN_CLI)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   989                 hdr |= 
SWITCHTEC_EVENT_EN_CLI;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   990         if (ctl->flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_DIS_CLI)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   991                 hdr &= 
~SWITCHTEC_EVENT_EN_CLI;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   992         if (ctl->flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_EN_FATAL)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   993                 hdr |= 
SWITCHTEC_EVENT_FATAL;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   994         if (ctl->flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_DIS_FATAL)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   995                 hdr &= 
~SWITCHTEC_EVENT_FATAL;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   996  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   997         if (ctl->flags)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   998                 iowrite32(hdr, 
reg);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02   999  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1000         ctl->flags = 0;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1001         if (hdr & 
SWITCHTEC_EVENT_EN_IRQ)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1002                 ctl->flags |= 
SWITCHTEC_IOCTL_EVENT_FLAG_EN_POLL;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1003         if (hdr & 
SWITCHTEC_EVENT_EN_LOG)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1004                 ctl->flags |= 
SWITCHTEC_IOCTL_EVENT_FLAG_EN_LOG;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1005         if (hdr & 
SWITCHTEC_EVENT_EN_CLI)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1006                 ctl->flags |= 
SWITCHTEC_IOCTL_EVENT_FLAG_EN_CLI;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1007         if (hdr & 
SWITCHTEC_EVENT_FATAL)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1008                 ctl->flags |= 
SWITCHTEC_IOCTL_EVENT_FLAG_EN_FATAL;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1009  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1010         return 0;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1011  }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1012  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1013  static int 
ioctl_event_ctl(struct switchtec_dev *stdev,
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1014         struct 
switchtec_ioctl_event_ctl __user *uctl)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1015  {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1016         int ret;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1017         int nr_idxs;
e4a7dca5de6250 Joey Zhang      2018-12-10  1018         unsigned int 
event_flags;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1019         struct 
switchtec_ioctl_event_ctl ctl;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1020  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1021         if 
(copy_from_user(&ctl, uctl, sizeof(ctl)))
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1022                 return -EFAULT;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1023  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1024         if (ctl.event_id >= 
SWITCHTEC_IOCTL_MAX_EVENTS)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1025                 return -EINVAL;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1026  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1027         if (ctl.flags & 
SWITCHTEC_IOCTL_EVENT_FLAG_UNUSED)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1028                 return -EINVAL;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1029  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1030         if (ctl.index == 
SWITCHTEC_IOCTL_EVENT_IDX_ALL) {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1031                 if 
(event_regs[ctl.event_id].map_reg == global_ev_reg)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1032                         nr_idxs 
= 1;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1033                 else if 
(event_regs[ctl.event_id].map_reg == part_ev_reg)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1034                         nr_idxs 
= stdev->partition_count;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1035                 else if 
(event_regs[ctl.event_id].map_reg == pff_ev_reg)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1036                         nr_idxs 
= stdev->pff_csr_count;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1037                 else
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1038                         return 
-EINVAL;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1039  
e4a7dca5de6250 Joey Zhang      2018-12-10  1040                 event_flags = 
ctl.flags;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1041                 for (ctl.index 
= 0; ctl.index < nr_idxs; ctl.index++) {
e4a7dca5de6250 Joey Zhang      2018-12-10  1042                         
ctl.flags = event_flags;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1043                         ret = 
event_ctl(stdev, &ctl);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1044                         if (ret 
< 0)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1045                                 
return ret;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1046                 }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1047         } else {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1048                 ret = 
event_ctl(stdev, &ctl);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1049                 if (ret < 0)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1050                         return 
ret;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1051         }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1052  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1053         if (copy_to_user(uctl, 
&ctl, sizeof(ctl)))
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1054                 return -EFAULT;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1055  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1056         return 0;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1057  }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1058  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1059  static int 
ioctl_pff_to_port(struct switchtec_dev *stdev,
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1060                              
struct switchtec_ioctl_pff_port *up)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1061  {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1062         int i, part;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1063         u32 reg;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1064         struct part_cfg_regs 
*pcfg;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1065         struct 
switchtec_ioctl_pff_port p;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1066  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1067         if (copy_from_user(&p, 
up, sizeof(p)))
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1068                 return -EFAULT;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1069  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1070         p.port = -1;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1071         for (part = 0; part < 
stdev->partition_count; part++) {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1072                 pcfg = 
&stdev->mmio_part_cfg_all[part];
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1073                 p.partition = 
part;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1074  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02 @1075                 reg = 
ioread32(&pcfg->usp_pff_inst_id);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1076                 if (reg == 
p.pff) {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1077                         p.port 
= 0;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1078                         break;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1079                 }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1080  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1081                 reg = 
ioread32(&pcfg->vep_pff_inst_id);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1082                 if (reg == 
p.pff) {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1083                         p.port 
= SWITCHTEC_IOCTL_PFF_VEP;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1084                         break;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1085                 }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1086  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1087                 for (i = 0; i < 
ARRAY_SIZE(pcfg->dsp_pff_inst_id); i++) {
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1088                         reg = 
ioread32(&pcfg->dsp_pff_inst_id[i]);
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1089                         if (reg 
!= p.pff)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1090                                 
continue;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1091  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1092                         p.port 
= i + 1;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1093                         break;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1094                 }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1095  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1096                 if (p.port != 
-1)
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1097                         break;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1098         }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1099  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1100         if (copy_to_user(up, 
&p, sizeof(p)))
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1101                 return -EFAULT;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1102  
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1103         return 0;
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1104  }
52eabba5bcdb28 Logan Gunthorpe 2017-03-02  1105  

:::::: The code at line 1075 was first introduced by commit
:::::: 52eabba5bcdb2853dec6ef007ba427b092034738 switchtec: Add IOCTLs to the 
Switchtec driver

:::::: TO: Logan Gunthorpe <[email protected]>
:::::: CC: Bjorn Helgaas <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to