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(a)intel.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(a)gmail.com 2010-02-24 392 static netdev_tx_t
41a655ba5654e4 drivers/net/greth.c kirjanov(a)gmail.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(a)gaisler.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org