tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   0aea6d5c5be33ce94c16f9ab2f64de1f481f424b
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to 
define address spaces
date:   3 weeks ago
config: alpha-randconfig-s032-20200712 (attached as .config)
compiler: alpha-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-37-gc9676a3b-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=alpha 

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:33: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void [noderef] __iomem 
>> *addr @@     got unsigned int * @@
>> drivers/pci/switch/switchtec.c:1075:33: sparse:     expected void [noderef] 
>> __iomem *addr
   drivers/pci/switch/switchtec.c:1075:33: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1081:33: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __iomem 
*addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1081:33: sparse:     expected void [noderef] 
__iomem *addr
   drivers/pci/switch/switchtec.c:1081:33: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1088:62: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __iomem 
*addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1088:62: sparse:     expected void [noderef] 
__iomem *addr
   drivers/pci/switch/switchtec.c:1088:62: 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:35: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __iomem 
*addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1124:35: sparse:     expected void [noderef] 
__iomem *addr
   drivers/pci/switch/switchtec.c:1124:35: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1127:35: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __iomem 
*addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1127:35: sparse:     expected void [noderef] 
__iomem *addr
   drivers/pci/switch/switchtec.c:1127:35: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1134:56: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __iomem 
*addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1134:56: sparse:     expected void [noderef] 
__iomem *addr
   drivers/pci/switch/switchtec.c:1134:56: 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:25: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __iomem 
*addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1497:25: sparse:     expected void [noderef] 
__iomem *addr
   drivers/pci/switch/switchtec.c:1497:25: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1501:25: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __iomem 
*addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1501:25: sparse:     expected void [noderef] 
__iomem *addr
   drivers/pci/switch/switchtec.c:1501:25: sparse:     got unsigned int *
   drivers/pci/switch/switchtec.c:1506:54: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __iomem 
*addr @@     got unsigned int * @@
   drivers/pci/switch/switchtec.c:1506:54: sparse:     expected void [noderef] 
__iomem *addr
   drivers/pci/switch/switchtec.c:1506:54: sparse:     got unsigned int *
--
   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 *addr @@     got void *virtual @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:241:25: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/gpu/drm/ttm/ttm_bo_util.c:241:25: sparse:     got void *virtual
>> drivers/gpu/drm/ttm/ttm_bo_util.c:256:40: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void [noderef] __iomem 
>> *addr @@     got unsigned int [usertype] * @@
>> drivers/gpu/drm/ttm/ttm_bo_util.c:256:40: sparse:     expected void 
>> [noderef] __iomem *addr
   drivers/gpu/drm/ttm/ttm_bo_util.c:256:40: sparse:     got unsigned int 
[usertype] *
   drivers/gpu/drm/ttm/ttm_bo_util.c:256:49: 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:49: sparse:     expected void 
[noderef] __iomem *addr
   drivers/gpu/drm/ttm/ttm_bo_util.c:256:49: sparse:     got unsigned int 
[usertype] *
   drivers/gpu/drm/ttm/ttm_bo_util.c:275:28: sparse: sparse: incorrect type in 
argument 2 (different address spaces) @@     expected void const volatile 
[noderef] __iomem * @@     got void *[assigned] src @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:275:28: sparse:     expected void const 
volatile [noderef] __iomem *
   drivers/gpu/drm/ttm/ttm_bo_util.c:275:28: sparse:     got void *[assigned] 
src
   drivers/gpu/drm/ttm/ttm_bo_util.c:297:21: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void volatile [noderef] 
__iomem * @@     got void *[assigned] dst @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:297:21: sparse:     expected void volatile 
[noderef] __iomem *
   drivers/gpu/drm/ttm/ttm_bo_util.c:297:21: sparse:     got void *[assigned] 
dst
   drivers/gpu/drm/ttm/ttm_bo_util.c:344:27: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void volatile [noderef] 
__iomem *addr @@     got void *[addressable] new_iomap @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:344:27: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/gpu/drm/ttm/ttm_bo_util.c:344:27: 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 *addr @@     got void *virtual @@
   drivers/gpu/drm/ttm/ttm_bo_util.c:608:28: sparse:     expected void volatile 
[noderef] __iomem *addr
   drivers/gpu/drm/ttm/ttm_bo_util.c:608:28: sparse:     got void *virtual

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

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