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:   Thu, 9 Jul 2020 20:51:14 +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/net/ethernet/aeroflex/greth.c:362:9: sparse: sparse:
 incorrect type in argument 2 (different address spaces)

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

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/net/ethernet/aeroflex/greth.c:362:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:362:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:362:9: sparse:     got restricted __be32 [usertype]
>> drivers/net/ethernet/aeroflex/greth.c:362:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
>> drivers/net/ethernet/aeroflex/greth.c:362:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:362:9: sparse:     got unsigned int *
>> drivers/net/ethernet/aeroflex/greth.c:406:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
>> drivers/net/ethernet/aeroflex/greth.c:406:24: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:406:24: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:406:24: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:409:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:409:25: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:409:25: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:409:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:409:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:409:25: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:752:17: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:752:17: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:752:17: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:752:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:752:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:752:17: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:869:17: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:869:17: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:869:17: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:869:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:869:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:869:17: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:627:17: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:627:17: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:627:17: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:627:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:627:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:627:17: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:692:17: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:692:17: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:692:17: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:692:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:692:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:692:17: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:594:18: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:594:18: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:594:18: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:594:18: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:600:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:600:16: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:600:16: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:600:16: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1029:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1029:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1029:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1029:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1029:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1029:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1030:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1030:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1030:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1030:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1030:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1030:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1066:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1066:15: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1066:15: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1066:15: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1074:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1074:25: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1074:25: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1074:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1074:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1074:25: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1075:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1075:25: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1075:25: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1075:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1075:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1075:25: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1077:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1077:25: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1077:25: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1077:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1077:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1077:25: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1083:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1083:25: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1083:25: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1083:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1083:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1083:25: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1091:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1091:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1091:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1091:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1091:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1091:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:328:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:328:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:328:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:328:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:328:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:328:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:329:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:329:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:329:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:329:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:329:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:329:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:991:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:991:24: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:991:24: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:991:24: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:994:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:994:25: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:994:25: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:994:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:994:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:994:25: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:999:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:999:25: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:999:25: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:999:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:999:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:999:25: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1003:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1003:21: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1003:21: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1003:21: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1004:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1004:25: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1004:25: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1004:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1004:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1004:25: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1056:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1056:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1056:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1056:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1056:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1056:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1057:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1057:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1057:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1057:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1057:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1057:9: sparse:     got unsigned int *
>> drivers/net/ethernet/aeroflex/greth.c:1128:52: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected unsigned int [usertype] *bd @@     got unsigned int [noderef] [usertype] __iomem * @@
   drivers/net/ethernet/aeroflex/greth.c:1128:52: sparse:     expected unsigned int [usertype] *bd
>> drivers/net/ethernet/aeroflex/greth.c:1128:52: sparse:     got unsigned int [noderef] [usertype] __iomem *
   drivers/net/ethernet/aeroflex/greth.c:1168:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1168:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1168:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1168:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1168:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1168:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1173:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1173:15: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1173:15: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1173:15: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1174:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1174:25: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1174:25: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1174:25: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1189:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1189:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1189:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1189:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1189:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1189:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1211:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1211:32: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1211:32: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1211:32: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1222:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1222:25: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1222:25: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1222:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1222:25: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1222:25: sparse:     got unsigned int *
>> drivers/net/ethernet/aeroflex/greth.c:1367:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct greth_regs *regs @@     got void [noderef] __iomem * @@
   drivers/net/ethernet/aeroflex/greth.c:1367:21: sparse:     expected struct greth_regs *regs
>> drivers/net/ethernet/aeroflex/greth.c:1367:21: sparse:     got void [noderef] __iomem *
   drivers/net/ethernet/aeroflex/greth.c:1388:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1388:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1388:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1388:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1388:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1388:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1392:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1392:16: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1392:16: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1392:16: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1402:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1402:27: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1402:27: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1402:27: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1405:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1405:15: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1405:15: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1405:15: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1416:17: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1478:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1478:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1478:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1478:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1478:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1478:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1479:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1479:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1479:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1479:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1479:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1479:9: sparse:     got unsigned int *
   drivers/net/ethernet/aeroflex/greth.c:1483:9: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:1483:9: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:1483:9: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:1483:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int * @@
   drivers/net/ethernet/aeroflex/greth.c:1483:9: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:1483:9: sparse:     got unsigned int *
>> drivers/net/ethernet/aeroflex/greth.c:1521:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem *base @@     got struct greth_regs *regs @@
>> drivers/net/ethernet/aeroflex/greth.c:1521:46: sparse:     expected void [noderef] __iomem *base
   drivers/net/ethernet/aeroflex/greth.c:1521:46: sparse:     got struct greth_regs *regs
   drivers/net/ethernet/aeroflex/greth.c:1544:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void [noderef] __iomem *base @@     got struct greth_regs *regs @@
   drivers/net/ethernet/aeroflex/greth.c:1544:47: sparse:     expected void [noderef] __iomem *base
   drivers/net/ethernet/aeroflex/greth.c:1544:47: sparse:     got struct greth_regs *regs
>> drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int [usertype] *bd @@
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     got unsigned int [usertype] *bd
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: cast to restricted __be32
>> drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int [usertype] *bd @@
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     got unsigned int [usertype] *bd
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: cast to restricted __be32
>> drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int [usertype] *bd @@
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     got unsigned int [usertype] *bd
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: cast to restricted __be32
>> drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int [usertype] *bd @@
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     got unsigned int [usertype] *bd
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: cast to restricted __be32
>> drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *addr @@     got unsigned int [usertype] *bd @@
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     expected void const volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse:     got unsigned int [usertype] *bd
   drivers/net/ethernet/aeroflex/greth.c:162:16: sparse: sparse: cast to restricted __be32
   drivers/net/ethernet/aeroflex/greth.c:157:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:157:22: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:157:22: sparse:     got restricted __be32 [usertype]
>> drivers/net/ethernet/aeroflex/greth.c:157:40: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got unsigned int [usertype] *bd @@
   drivers/net/ethernet/aeroflex/greth.c:157:40: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/net/ethernet/aeroflex/greth.c:157:40: sparse:     got unsigned int [usertype] *bd
   drivers/net/ethernet/aeroflex/greth.c:157:22: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] value @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/aeroflex/greth.c:157:22: sparse:     expected unsigned int [usertype] value
   drivers/net/ethernet/aeroflex/greth.c:157:22: sparse:     got restricted __be32 [usertype]
   drivers/net/ethernet/aeroflex/greth.c:157:40: sparse: sparse: too many warnings

vim +362 drivers/net/ethernet/aeroflex/greth.c

d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  337  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  338  static int greth_open(struct net_device *dev)
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  339  {
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  340  	struct greth_private *greth = netdev_priv(dev);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  341  	int err;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  342  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  343  	err = greth_init_rings(greth);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  344  	if (err) {
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  345  		if (netif_msg_ifup(greth))
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  346  			dev_err(&dev->dev, "Could not allocate memory for DMA rings\n");
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  347  		return err;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  348  	}
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  349  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  350  	err = request_irq(greth->irq, greth_interrupt, 0, "eth", (void *) dev);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  351  	if (err) {
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  352  		if (netif_msg_ifup(greth))
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  353  			dev_err(&dev->dev, "Could not allocate interrupt %d\n", dev->irq);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  354  		greth_clean_rings(greth);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  355  		return err;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  356  	}
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  357  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  358  	if (netif_msg_ifup(greth))
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  359  		dev_dbg(&dev->dev, " starting queue\n");
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  360  	netif_start_queue(dev);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  361  
bbe9e637330abe drivers/net/greth.c Daniel Hellstrom   2011-01-14 @362  	GRETH_REGSAVE(greth->regs->status, 0xFF);
bbe9e637330abe drivers/net/greth.c Daniel Hellstrom   2011-01-14  363  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  364  	napi_enable(&greth->napi);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  365  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  366  	greth_enable_irqs(greth);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  367  	greth_enable_tx(greth);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  368  	greth_enable_rx(greth);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  369  	return 0;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  370  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  371  }
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  372  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  373  static int greth_close(struct net_device *dev)
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  374  {
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  375  	struct greth_private *greth = netdev_priv(dev);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  376  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  377  	napi_disable(&greth->napi);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  378  
bbe9e637330abe drivers/net/greth.c Daniel Hellstrom   2011-01-14  379  	greth_disable_irqs(greth);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  380  	greth_disable_tx(greth);
bbe9e637330abe drivers/net/greth.c Daniel Hellstrom   2011-01-14  381  	greth_disable_rx(greth);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  382  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  383  	netif_stop_queue(dev);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  384  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  385  	free_irq(greth->irq, (void *) dev);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  386  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  387  	greth_clean_rings(greth);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  388  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  389  	return 0;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  390  }
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  391  
41a655ba5654e4 drivers/net/greth.c kirjanov@...il.com 2010-02-24  392  static netdev_tx_t
41a655ba5654e4 drivers/net/greth.c kirjanov@...il.com 2010-02-24  393  greth_start_xmit(struct sk_buff *skb, struct net_device *dev)
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  394  {
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  395  	struct greth_private *greth = netdev_priv(dev);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  396  	struct greth_bd *bdp;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  397  	int err = NETDEV_TX_OK;
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  398  	u32 status, dma_addr, ctrl;
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  399  	unsigned long flags;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  400  
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  401  	/* Clean TX Ring */
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  402  	greth_clean_tx(greth->netdev);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  403  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  404  	if (unlikely(greth->tx_free <= 0)) {
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  405  		spin_lock_irqsave(&greth->devlock, flags);/*save from poll/irq*/
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14 @406  		ctrl = GRETH_REGLOAD(greth->regs->control);
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  407  		/* Enable TX IRQ only if not already in poll() routine */
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  408  		if (ctrl & GRETH_RXI)
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  409  			GRETH_REGSAVE(greth->regs->control, ctrl | GRETH_TXI);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  410  		netif_stop_queue(dev);
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  411  		spin_unlock_irqrestore(&greth->devlock, flags);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  412  		return NETDEV_TX_BUSY;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  413  	}
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  414  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  415  	if (netif_msg_pktdata(greth))
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  416  		greth_print_tx_packet(skb);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  417  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  418  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  419  	if (unlikely(skb->len > MAX_FRAME_SIZE)) {
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  420  		dev->stats.tx_errors++;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  421  		goto out;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  422  	}
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  423  
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  424  	bdp = greth->tx_bd_base + greth->tx_next;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  425  	dma_addr = greth_read_bd(&bdp->addr);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  426  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  427  	memcpy((unsigned char *) phys_to_virt(dma_addr), skb->data, skb->len);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  428  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  429  	dma_sync_single_for_device(greth->dev, dma_addr, skb->len, DMA_TO_DEVICE);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  430  
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  431  	status = GRETH_BD_EN | GRETH_BD_IE | (skb->len & GRETH_BD_LEN);
6af29a963cecf4 drivers/net/greth.c Daniel Hellstrom   2011-09-08  432  	greth->tx_bufs_length[greth->tx_next] = skb->len & GRETH_BD_LEN;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  433  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  434  	/* Wrap around descriptor ring */
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  435  	if (greth->tx_next == GRETH_TXBD_NUM_MASK) {
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  436  		status |= GRETH_BD_WR;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  437  	}
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  438  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  439  	greth->tx_next = NEXT_TX(greth->tx_next);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  440  	greth->tx_free--;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  441  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  442  	/* Write descriptor control word and enable transmission */
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  443  	greth_write_bd(&bdp->stat, status);
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  444  	spin_lock_irqsave(&greth->devlock, flags); /*save from poll/irq*/
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  445  	greth_enable_tx(greth);
0f73f2c5a3ebb9 drivers/net/greth.c Daniel Hellstrom   2011-01-14  446  	spin_unlock_irqrestore(&greth->devlock, flags);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  447  
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  448  out:
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  449  	dev_kfree_skb(skb);
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  450  	return err;
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  451  }
d4c41139df6e74 drivers/net/greth.c Kristoffer Glembo  2010-02-15  452  

:::::: The code at line 362 was first introduced by commit
:::::: bbe9e637330abe55442aebe799425e224086959f GRETH: fix opening/closing

:::::: TO: Daniel Hellstrom <daniel@...sler.com>
:::::: CC: David S. Miller <davem@...emloft.net>

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ