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  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:   Sun, 5 Jul 2020 17:02:45 +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/atm/iphase.c:149:16: sparse: sparse: cast removes address
 space '__iomem' of expression

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   35e884f89df4c48566d745dc5a97a0d058d04263
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date:   2 weeks ago
config: i386-randconfig-s001-20200705 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.2-3-gfa153962-dirty
        git checkout 670d0a4b10704667765f7d18f7592993d02783aa
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

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/atm/iphase.c:149:16: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:153:11: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:165:56: sparse: sparse: invalid assignment: |=
   drivers/atm/iphase.c:165:56: sparse:    left side has type restricted __be16
   drivers/atm/iphase.c:165:56: sparse:    right side has type int
   drivers/atm/iphase.c:203:14: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:220:16: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:228:19: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:241:29: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:242:29: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:279:20: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:384:14: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:444:17: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:446:20: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:529:19: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:583:16: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:2976:11: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:3050:23: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] protocol @@     got int vci @@
   drivers/atm/iphase.c:3050:23: sparse:     expected restricted __be16 [usertype] protocol
   drivers/atm/iphase.c:3050:23: sparse:     got int vci
   drivers/atm/iphase.c:668:17: sparse: sparse: restricted __be16 degrades to integer
   drivers/atm/iphase.c:1185:23: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] protocol @@     got int [assigned] desc @@
   drivers/atm/iphase.c:1185:23: sparse:     expected restricted __be16 [usertype] protocol
   drivers/atm/iphase.c:1185:23: sparse:     got int [assigned] desc
   drivers/atm/iphase.c:1297:12: sparse: sparse: incorrect type in assignment (different base types) @@     expected int desc @@     got restricted __be16 [usertype] protocol @@
   drivers/atm/iphase.c:1297:12: sparse:     expected int desc
   drivers/atm/iphase.c:1297:12: sparse:     got restricted __be16 [usertype] protocol
   drivers/atm/iphase.c:1506:24: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:1553:24: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:1565:20: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:1582:25: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:1735:34: sparse: sparse: invalid assignment: |=
   drivers/atm/iphase.c:1735:34: sparse:    left side has type restricted __be16
   drivers/atm/iphase.c:1735:34: sparse:    right side has type int
   drivers/atm/iphase.c:1812:15: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:1813:16: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:1966:24: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:2022:22: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:2049:22: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:2112:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:2128:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:2129:15: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:2130:16: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:2278:16: sparse: sparse: cast to restricted __le32
   drivers/atm/iphase.c:2278:16: sparse: sparse: cast to restricted __le32
   drivers/atm/iphase.c:2278:16: sparse: sparse: cast to restricted __le32
   drivers/atm/iphase.c:2278:16: sparse: sparse: cast to restricted __le32
   drivers/atm/iphase.c:2278:16: sparse: sparse: cast to restricted __le32
   drivers/atm/iphase.c:2278:16: sparse: sparse: cast to restricted __le32
   drivers/atm/iphase.c:2278:14: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] mac1 @@     got restricted __be32 [usertype] @@
   drivers/atm/iphase.c:2278:14: sparse:     expected unsigned int [usertype] mac1
   drivers/atm/iphase.c:2278:14: sparse:     got restricted __be32 [usertype]
   drivers/atm/iphase.c:2280:16: sparse: sparse: cast to restricted __le16
   drivers/atm/iphase.c:2280:16: sparse: sparse: cast to restricted __le16
   drivers/atm/iphase.c:2280:16: sparse: sparse: cast to restricted __le16
   drivers/atm/iphase.c:2280:16: sparse: sparse: cast to restricted __le16
   drivers/atm/iphase.c:2280:14: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] mac2 @@     got restricted __be16 [usertype] @@
   drivers/atm/iphase.c:2280:14: sparse:     expected unsigned short [usertype] mac2
   drivers/atm/iphase.c:2280:14: sparse:     got restricted __be16 [usertype]
   drivers/atm/iphase.c:2666:24: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:2670:24: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/atm/iphase.c:1132:25: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1137:30: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1147:29: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1168:21: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1168:57: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1169:21: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1169:57: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1395:10: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1408:18: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1490:17: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:1491:17: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:2677:15: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:2678:15: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:3006:9: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:3009:9: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:3010:9: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:3020:35: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:3021:51: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:3038:36: sparse: sparse: dereference of noderef expression
   drivers/atm/iphase.c:3039:11: sparse: sparse: dereference of noderef expression

vim +/__iomem +149 drivers/atm/iphase.c

^1da177e4c3f41 Linus Torvalds 2005-04-16  142  
^1da177e4c3f41 Linus Torvalds 2005-04-16  143    u_short 		desc1;
^1da177e4c3f41 Linus Torvalds 2005-04-16  144    u_short		tcq_wr;
^1da177e4c3f41 Linus Torvalds 2005-04-16  145    struct ia_vcc         *iavcc_r = NULL; 
^1da177e4c3f41 Linus Torvalds 2005-04-16  146  
^1da177e4c3f41 Linus Torvalds 2005-04-16  147    tcq_wr = readl(dev->seg_reg+TCQ_WR_PTR) & 0xffff;
^1da177e4c3f41 Linus Torvalds 2005-04-16  148    while (dev->host_tcq_wr != tcq_wr) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 @149       desc1 = *(u_short *)(dev->seg_ram + dev->host_tcq_wr);
^1da177e4c3f41 Linus Torvalds 2005-04-16  150       if (!desc1) ;
^1da177e4c3f41 Linus Torvalds 2005-04-16  151       else if (!dev->desc_tbl[desc1 -1].timestamp) {
^1da177e4c3f41 Linus Torvalds 2005-04-16  152          IF_ABR(printk(" Desc %d is reset at %ld\n", desc1 -1, jiffies);)
^1da177e4c3f41 Linus Torvalds 2005-04-16  153          *(u_short *) (dev->seg_ram + dev->host_tcq_wr) = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16  154       }                                 
^1da177e4c3f41 Linus Torvalds 2005-04-16  155       else if (dev->desc_tbl[desc1 -1].timestamp) {
^1da177e4c3f41 Linus Torvalds 2005-04-16  156          if (!(iavcc_r = dev->desc_tbl[desc1 -1].iavcc)) { 
^1da177e4c3f41 Linus Torvalds 2005-04-16  157             printk("IA: Fatal err in get_desc\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16  158             continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16  159          }
^1da177e4c3f41 Linus Torvalds 2005-04-16  160          iavcc_r->vc_desc_cnt--;
^1da177e4c3f41 Linus Torvalds 2005-04-16  161          dev->desc_tbl[desc1 -1].timestamp = 0;
849e8caa477d72 David Howells  2008-07-30  162          IF_EVENT(printk("ia_hack: return_q skb = 0x%p desc = %d\n",
849e8caa477d72 David Howells  2008-07-30  163                                     dev->desc_tbl[desc1 -1].txskb, desc1);)
^1da177e4c3f41 Linus Torvalds 2005-04-16  164          if (iavcc_r->pcr < dev->rate_limit) {
^1da177e4c3f41 Linus Torvalds 2005-04-16  165             IA_SKB_STATE (dev->desc_tbl[desc1-1].txskb) |= IA_TX_DONE;
^1da177e4c3f41 Linus Torvalds 2005-04-16  166             if (ia_enque_rtn_q(&dev->tx_return_q, dev->desc_tbl[desc1 -1]) < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16  167                printk("ia_hack_tcq: No memory available\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16  168          } 
^1da177e4c3f41 Linus Torvalds 2005-04-16  169          dev->desc_tbl[desc1 -1].iavcc = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16  170          dev->desc_tbl[desc1 -1].txskb = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16  171       }
^1da177e4c3f41 Linus Torvalds 2005-04-16  172       dev->host_tcq_wr += 2;
^1da177e4c3f41 Linus Torvalds 2005-04-16  173       if (dev->host_tcq_wr > dev->ffL.tcq_ed) 
^1da177e4c3f41 Linus Torvalds 2005-04-16  174          dev->host_tcq_wr = dev->ffL.tcq_st;
^1da177e4c3f41 Linus Torvalds 2005-04-16  175    }
^1da177e4c3f41 Linus Torvalds 2005-04-16  176  } /* ia_hack_tcq */
^1da177e4c3f41 Linus Torvalds 2005-04-16  177  

:::::: The code at line 149 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@...970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@...970.osdl.org>

---
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" (35333 bytes)

Powered by blists - more mailing lists