drivers/net/ethernet/freescale/ucc_geth.c:2167:47: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1df27313f50a57497c1faeb6a6ae4ca939c85a7d
commit: 9b0dfef4755301d9f7fcef63e2f64d23649bebb4 ethernet: ucc_geth: simplify rx/tx allocations
date: 8 weeks ago
config: powerpc-randconfig-s031-20210317 (attached as .config)
compiler: powerpc-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.3-277-gc089cd2d-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 9b0dfef4755301d9f7fcef63e2f64d23649bebb4
# 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=powerpc
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/freescale/ucc_geth.c:243:21: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:243:21: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:243:21: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:404:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short volatile [noderef] [usertype] __iomem *addr @@ got restricted __be16 [noderef] [usertype] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:404:22: sparse: expected unsigned short volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:404:22: sparse: got restricted __be16 [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:405:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short volatile [noderef] [usertype] __iomem *addr @@ got restricted __be16 [noderef] [usertype] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:405:22: sparse: expected unsigned short volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:405:22: sparse: got restricted __be16 [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:406:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short volatile [noderef] [usertype] __iomem *addr @@ got restricted __be16 [noderef] [usertype] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:406:22: sparse: expected unsigned short volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:406:22: sparse: got restricted __be16 [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:448:23: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __be16 [noderef] [usertype] __iomem *reg @@ got unsigned short [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:448:23: sparse: expected restricted __be16 [noderef] [usertype] __iomem *reg
drivers/net/ethernet/freescale/ucc_geth.c:448:23: sparse: got unsigned short [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1316:26: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1316:26: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1316:26: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1343:19: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1343:19: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1343:19: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1389:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:1389:9: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1389:9: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:1389:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:1389:9: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1389:9: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:1390:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_ucce @@
drivers/net/ethernet/freescale/ucc_geth.c:1390:22: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1390:22: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_ucce
drivers/net/ethernet/freescale/ucc_geth.c:1401:36: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_ucce @@
drivers/net/ethernet/freescale/ucc_geth.c:1401:36: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1401:36: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_ucce
drivers/net/ethernet/freescale/ucc_geth.c:1570:38: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1570:38: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1570:38: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1635:35: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1635:35: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1635:35: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1823:41: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1823:41: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1823:41: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1838:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got unsigned char [noderef] [usertype] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1838:50: sparse: expected void const *
drivers/net/ethernet/freescale/ucc_geth.c:1838:50: sparse: got unsigned char [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1863:33: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1863:33: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1863:33: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1875:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got unsigned char [noderef] [usertype] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1875:42: sparse: expected void const *
drivers/net/ethernet/freescale/ucc_geth.c:1875:42: sparse: got unsigned char [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1964:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1964:17: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1964:17: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1964:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1964:17: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1964:17: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1966:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1966:17: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1966:17: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:1966:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:1966:17: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:1966:17: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2012:29: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:2012:29: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:2012:29: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:2015:29: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_ucce @@
drivers/net/ethernet/freescale/ucc_geth.c:2015:29: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:2015:29: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_ucce
drivers/net/ethernet/freescale/ucc_geth.c:2159:40: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __iomem * @@ got void * @@
drivers/net/ethernet/freescale/ucc_geth.c:2159:40: sparse: expected unsigned char [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2159:40: sparse: got void *
>> drivers/net/ethernet/freescale/ucc_geth.c:2167:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got unsigned char [noderef] [usertype] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2167:47: sparse: expected void *
drivers/net/ethernet/freescale/ucc_geth.c:2167:47: sparse: got unsigned char [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2187:37: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2187:37: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:2187:37: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2220:40: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] [usertype] __iomem * @@ got void * @@
drivers/net/ethernet/freescale/ucc_geth.c:2220:40: sparse: expected unsigned char [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2220:40: sparse: got void *
drivers/net/ethernet/freescale/ucc_geth.c:2247:37: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2247:37: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:2247:37: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2309:32: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [noderef] [usertype] __iomem *upsmr_register @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2309:32: sparse: expected unsigned int [noderef] [usertype] __iomem *upsmr_register
drivers/net/ethernet/freescale/ucc_geth.c:2309:32: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2315:57: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected unsigned int [noderef] [usertype] __iomem *upsmr_register @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2315:57: sparse: expected unsigned int [noderef] [usertype] __iomem *upsmr_register
drivers/net/ethernet/freescale/ucc_geth.c:2315:57: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2327:35: sparse: sparse: incorrect type in argument 6 (different base types) @@ expected unsigned int [noderef] [usertype] __iomem *upsmr_register @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2327:35: sparse: expected unsigned int [noderef] [usertype] __iomem *upsmr_register
drivers/net/ethernet/freescale/ucc_geth.c:2327:35: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2375:37: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected unsigned int [noderef] [usertype] __iomem *upsmr_register @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2375:37: sparse: expected unsigned int [noderef] [usertype] __iomem *upsmr_register
drivers/net/ethernet/freescale/ucc_geth.c:2375:37: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2453:64: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile *address @@ got unsigned char [noderef] [usertype] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2453:64: sparse: expected void volatile *address
drivers/net/ethernet/freescale/ucc_geth.c:2453:64: sparse: got unsigned char [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2456:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile *address @@ got unsigned char [noderef] [usertype] __iomem *[assigned] endOfRing @@
drivers/net/ethernet/freescale/ucc_geth.c:2456:45: sparse: expected void volatile *address
drivers/net/ethernet/freescale/ucc_geth.c:2456:45: sparse: got unsigned char [noderef] [usertype] __iomem *[assigned] endOfRing
drivers/net/ethernet/freescale/ucc_geth.c:2676:64: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile *address @@ got unsigned char [noderef] [usertype] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2676:64: sparse: expected void volatile *address
drivers/net/ethernet/freescale/ucc_geth.c:2676:64: sparse: got unsigned char [noderef] [usertype] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:2943:21: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:2943:21: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:2943:21: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:3009:46: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] __iomem * @@
drivers/net/ethernet/freescale/ucc_geth.c:3009:46: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3009:46: sparse: got restricted __be32 [noderef] __iomem *
drivers/net/ethernet/freescale/ucc_geth.c:3137:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:3137:17: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3137:17: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:3137:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:3137:17: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3137:17: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:3158:34: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_ucce @@
drivers/net/ethernet/freescale/ucc_geth.c:3158:34: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3158:34: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_ucce
drivers/net/ethernet/freescale/ucc_geth.c:3159:34: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:3159:34: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3159:34: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:3161:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_ucce @@
drivers/net/ethernet/freescale/ucc_geth.c:3161:22: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3161:22: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_ucce
drivers/net/ethernet/freescale/ucc_geth.c:3167:38: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:3167:38: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3167:38: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:3413:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:3413:17: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3413:17: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:3413:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:3413:17: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3413:17: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:3436:25: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:3436:25: sparse: expected unsigned int volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3436:25: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
drivers/net/ethernet/freescale/ucc_geth.c:3436:25: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got restricted __be32 [noderef] [usertype] __iomem *p_uccm @@
drivers/net/ethernet/freescale/ucc_geth.c:3436:25: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/net/ethernet/freescale/ucc_geth.c:3436:25: sparse: got restricted __be32 [noderef] [usertype] __iomem *p_uccm
vim +2167 drivers/net/ethernet/freescale/ucc_geth.c
2137
2138 static int ucc_geth_alloc_tx(struct ucc_geth_private *ugeth)
2139 {
2140 struct ucc_geth_info *ug_info;
2141 struct ucc_fast_info *uf_info;
2142 int length;
2143 u16 i, j;
2144 u8 __iomem *bd;
2145
2146 ug_info = ugeth->ug_info;
2147 uf_info = &ug_info->uf_info;
2148
2149 /* Allocate Tx bds */
2150 for (j = 0; j < ucc_geth_tx_queues(ug_info); j++) {
2151 u32 align = max(UCC_GETH_TX_BD_RING_ALIGNMENT,
2152 UCC_GETH_TX_BD_RING_SIZE_MEMORY_ALIGNMENT);
2153 u32 alloc;
2154
2155 length = ug_info->bdRingLenTx[j] * sizeof(struct qe_bd);
2156 alloc = round_up(length, align);
2157 alloc = roundup_pow_of_two(alloc);
2158
2159 ugeth->p_tx_bd_ring[j] = kmalloc(alloc, GFP_KERNEL);
2160
2161 if (!ugeth->p_tx_bd_ring[j]) {
2162 if (netif_msg_ifup(ugeth))
2163 pr_err("Can not allocate memory for Tx bd rings\n");
2164 return -ENOMEM;
2165 }
2166 /* Zero unused end of bd ring, according to spec */
> 2167 memset(ugeth->p_tx_bd_ring[j] + length, 0, alloc - length);
2168 }
2169
2170 /* Init Tx bds */
2171 for (j = 0; j < ucc_geth_tx_queues(ug_info); j++) {
2172 /* Setup the skbuff rings */
2173 ugeth->tx_skbuff[j] =
2174 kcalloc(ugeth->ug_info->bdRingLenTx[j],
2175 sizeof(struct sk_buff *), GFP_KERNEL);
2176
2177 if (ugeth->tx_skbuff[j] == NULL) {
2178 if (netif_msg_ifup(ugeth))
2179 pr_err("Could not allocate tx_skbuff\n");
2180 return -ENOMEM;
2181 }
2182
2183 ugeth->skb_curtx[j] = ugeth->skb_dirtytx[j] = 0;
2184 bd = ugeth->confBd[j] = ugeth->txBd[j] = ugeth->p_tx_bd_ring[j];
2185 for (i = 0; i < ug_info->bdRingLenTx[j]; i++) {
2186 /* clear bd buffer */
2187 out_be32(&((struct qe_bd __iomem *)bd)->buf, 0);
2188 /* set bd status and length */
2189 out_be32((u32 __iomem *)bd, 0);
2190 bd += sizeof(struct qe_bd);
2191 }
2192 bd -= sizeof(struct qe_bd);
2193 /* set bd status and length */
2194 out_be32((u32 __iomem *)bd, T_W); /* for last BD set Wrap bit */
2195 }
2196
2197 return 0;
2198 }
2199
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_io_setup'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1df27313f50a57497c1faeb6a6ae4ca939c85a7d
commit: 6cc8d2b286d9e7168d72e342d1b031317cd7752b x86/entry: Refactor COND_SYSCALL macros
date: 12 months ago
config: x86_64-randconfig-r012-20210316 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 6cc8d2b286d9e7168d72e342d1b031317cd7752b
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from kernel/sys_ni.c:10:
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_setup' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL'
39 | COND_SYSCALL(io_setup);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_setup' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:39:1: note: in expansion of macro 'COND_SYSCALL'
39 | COND_SYSCALL(io_setup);
| ^~~~~~~~~~~~
>> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_io_setup' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL'
78 | __COND_SYSCALL(ia32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL'
157 | __IA32_COMPAT_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:40:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
40 | COND_SYSCALL_COMPAT(io_setup);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_destroy' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:41:1: note: in expansion of macro 'COND_SYSCALL'
41 | COND_SYSCALL(io_destroy);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_destroy' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:41:1: note: in expansion of macro 'COND_SYSCALL'
41 | COND_SYSCALL(io_destroy);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_submit' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:42:1: note: in expansion of macro 'COND_SYSCALL'
42 | COND_SYSCALL(io_submit);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_submit' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:42:1: note: in expansion of macro 'COND_SYSCALL'
42 | COND_SYSCALL(io_submit);
| ^~~~~~~~~~~~
>> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_io_submit' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL'
78 | __COND_SYSCALL(ia32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL'
157 | __IA32_COMPAT_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:43:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
43 | COND_SYSCALL_COMPAT(io_submit);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_cancel' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:44:1: note: in expansion of macro 'COND_SYSCALL'
44 | COND_SYSCALL(io_cancel);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_cancel' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:44:1: note: in expansion of macro 'COND_SYSCALL'
44 | COND_SYSCALL(io_cancel);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_getevents_time32' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:45:1: note: in expansion of macro 'COND_SYSCALL'
45 | COND_SYSCALL(io_getevents_time32);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_getevents_time32' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:45:1: note: in expansion of macro 'COND_SYSCALL'
45 | COND_SYSCALL(io_getevents_time32);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_getevents' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:46:1: note: in expansion of macro 'COND_SYSCALL'
46 | COND_SYSCALL(io_getevents);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_getevents' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:46:1: note: in expansion of macro 'COND_SYSCALL'
46 | COND_SYSCALL(io_getevents);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_pgetevents_time32' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:47:1: note: in expansion of macro 'COND_SYSCALL'
47 | COND_SYSCALL(io_pgetevents_time32);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_pgetevents_time32' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:47:1: note: in expansion of macro 'COND_SYSCALL'
47 | COND_SYSCALL(io_pgetevents_time32);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_pgetevents' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:48:1: note: in expansion of macro 'COND_SYSCALL'
48 | COND_SYSCALL(io_pgetevents);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_pgetevents' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:48:1: note: in expansion of macro 'COND_SYSCALL'
48 | COND_SYSCALL(io_pgetevents);
| ^~~~~~~~~~~~
>> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_io_pgetevents_time32' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL'
78 | __COND_SYSCALL(ia32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL'
157 | __IA32_COMPAT_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:49:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
49 | COND_SYSCALL_COMPAT(io_pgetevents_time32);
| ^~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_io_pgetevents' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL'
78 | __COND_SYSCALL(ia32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL'
157 | __IA32_COMPAT_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:50:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
50 | COND_SYSCALL_COMPAT(io_pgetevents);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_uring_setup' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:51:1: note: in expansion of macro 'COND_SYSCALL'
51 | COND_SYSCALL(io_uring_setup);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_uring_setup' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:51:1: note: in expansion of macro 'COND_SYSCALL'
51 | COND_SYSCALL(io_uring_setup);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_uring_enter' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:52:1: note: in expansion of macro 'COND_SYSCALL'
52 | COND_SYSCALL(io_uring_enter);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_uring_enter' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:52:1: note: in expansion of macro 'COND_SYSCALL'
52 | COND_SYSCALL(io_uring_enter);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_io_uring_register' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:53:1: note: in expansion of macro 'COND_SYSCALL'
53 | COND_SYSCALL(io_uring_register);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_io_uring_register' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:53:1: note: in expansion of macro 'COND_SYSCALL'
53 | COND_SYSCALL(io_uring_register);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_lookup_dcookie' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:60:1: note: in expansion of macro 'COND_SYSCALL'
60 | COND_SYSCALL(lookup_dcookie);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_lookup_dcookie' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:60:1: note: in expansion of macro 'COND_SYSCALL'
60 | COND_SYSCALL(lookup_dcookie);
| ^~~~~~~~~~~~
>> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_lookup_dcookie' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL'
78 | __COND_SYSCALL(ia32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL'
157 | __IA32_COMPAT_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:61:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
61 | COND_SYSCALL_COMPAT(lookup_dcookie);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_eventfd2' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:64:1: note: in expansion of macro 'COND_SYSCALL'
64 | COND_SYSCALL(eventfd2);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_eventfd2' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:64:1: note: in expansion of macro 'COND_SYSCALL'
64 | COND_SYSCALL(eventfd2);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_epoll_create1' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:67:1: note: in expansion of macro 'COND_SYSCALL'
67 | COND_SYSCALL(epoll_create1);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_epoll_create1' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:67:1: note: in expansion of macro 'COND_SYSCALL'
67 | COND_SYSCALL(epoll_create1);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_epoll_ctl' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:68:1: note: in expansion of macro 'COND_SYSCALL'
68 | COND_SYSCALL(epoll_ctl);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_epoll_ctl' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:68:1: note: in expansion of macro 'COND_SYSCALL'
68 | COND_SYSCALL(epoll_ctl);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_epoll_pwait' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:69:1: note: in expansion of macro 'COND_SYSCALL'
69 | COND_SYSCALL(epoll_pwait);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_epoll_pwait' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:69:1: note: in expansion of macro 'COND_SYSCALL'
69 | COND_SYSCALL(epoll_pwait);
| ^~~~~~~~~~~~
>> arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_compat_sys_epoll_pwait' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:78:2: note: in expansion of macro '__COND_SYSCALL'
78 | __COND_SYSCALL(ia32, compat_sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:157:2: note: in expansion of macro '__IA32_COMPAT_COND_SYSCALL'
157 | __IA32_COMPAT_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:70:1: note: in expansion of macro 'COND_SYSCALL_COMPAT'
70 | COND_SYSCALL_COMPAT(epoll_pwait);
| ^~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_inotify_init1' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:75:1: note: in expansion of macro 'COND_SYSCALL'
75 | COND_SYSCALL(inotify_init1);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_inotify_init1' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:75:1: note: in expansion of macro 'COND_SYSCALL'
75 | COND_SYSCALL(inotify_init1);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_inotify_add_watch' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:76:1: note: in expansion of macro 'COND_SYSCALL'
76 | COND_SYSCALL(inotify_add_watch);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_inotify_add_watch' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:76:1: note: in expansion of macro 'COND_SYSCALL'
76 | COND_SYSCALL(inotify_add_watch);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_inotify_rm_watch' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:77:1: note: in expansion of macro 'COND_SYSCALL'
77 | COND_SYSCALL(inotify_rm_watch);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_inotify_rm_watch' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:232:2: note: in expansion of macro '__IA32_COND_SYSCALL'
232 | __IA32_COND_SYSCALL(name)
| ^~~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:77:1: note: in expansion of macro 'COND_SYSCALL'
77 | COND_SYSCALL(inotify_rm_watch);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__x64_sys_ioprio_set' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:54:2: note: in expansion of macro '__COND_SYSCALL'
54 | __COND_SYSCALL(x64, sys_##name)
| ^~~~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:231:2: note: in expansion of macro '__X64_COND_SYSCALL'
231 | __X64_COND_SYSCALL(name) \
| ^~~~~~~~~~~~~~~~~~
kernel/sys_ni.c:82:1: note: in expansion of macro 'COND_SYSCALL'
82 | COND_SYSCALL(ioprio_set);
| ^~~~~~~~~~~~
arch/x86/include/asm/syscall_wrapper.h:40:2: warning: no previous prototype for '__ia32_sys_ioprio_set' [-Wmissing-prototypes]
40 | __##abi##_##name(const struct pt_regs *__unused) \
| ^~
arch/x86/include/asm/syscall_wrapper.h:88:2: note: in expansion of macro '__COND_SYSCALL'
88 | __COND_SYSCALL(ia32, sys_##name)
..
vim +/__ia32_compat_sys_io_setup +40 arch/x86/include/asm/syscall_wrapper.h
10
11 /* Mapping of registers to parameters for syscalls on x86-64 and x32 */
12 #define SC_X86_64_REGS_TO_ARGS(x, ...) \
13 __MAP(x,__SC_ARGS \
14 ,,regs->di,,regs->si,,regs->dx \
15 ,,regs->r10,,regs->r8,,regs->r9) \
16
17 /* Mapping of registers to parameters for syscalls on i386 */
18 #define SC_IA32_REGS_TO_ARGS(x, ...) \
19 __MAP(x,__SC_ARGS \
20 ,,(unsigned int)regs->bx,,(unsigned int)regs->cx \
21 ,,(unsigned int)regs->dx,,(unsigned int)regs->si \
22 ,,(unsigned int)regs->di,,(unsigned int)regs->bp)
23
24 #define __SYS_STUB0(abi, name) \
25 asmlinkage long __##abi##_##name(const struct pt_regs *regs); \
26 ALLOW_ERROR_INJECTION(__##abi##_##name, ERRNO); \
27 asmlinkage long __##abi##_##name(const struct pt_regs *regs) \
28 __alias(__do_##name);
29
30 #define __SYS_STUBx(abi, name, ...) \
31 asmlinkage long __##abi##_##name(const struct pt_regs *regs); \
32 ALLOW_ERROR_INJECTION(__##abi##_##name, ERRNO); \
33 asmlinkage long __##abi##_##name(const struct pt_regs *regs) \
34 { \
35 return __se_##name(__VA_ARGS__); \
36 }
37
38 #define __COND_SYSCALL(abi, name) \
39 asmlinkage __weak long \
> 40 __##abi##_##name(const struct pt_regs *__unused) \
41 { \
42 return sys_ni_syscall(); \
43 }
44
45 #ifdef CONFIG_X86_64
46 #define __X64_SYS_STUB0(name) \
47 __SYS_STUB0(x64, sys_##name)
48
49 #define __X64_SYS_STUBx(x, name, ...) \
50 __SYS_STUBx(x64, sys##name, \
51 SC_X86_64_REGS_TO_ARGS(x, __VA_ARGS__))
52
53 #define __X64_COND_SYSCALL(name) \
54 __COND_SYSCALL(x64, sys_##name)
55 #else /* CONFIG_X86_64 */
56 #define __X64_SYS_STUB0(name)
57 #define __X64_SYS_STUBx(x, name, ...)
58 #define __X64_COND_SYSCALL(name)
59 #endif /* CONFIG_X86_64 */
60
61 #ifdef CONFIG_IA32_EMULATION
62 /*
63 * For IA32 emulation, we need to handle "compat" syscalls *and* create
64 * additional wrappers (aptly named __ia32_sys_xyzzy) which decode the
65 * ia32 regs in the proper order for shared or "common" syscalls. As some
66 * syscalls may not be implemented, we need to expand COND_SYSCALL in
67 * kernel/sys_ni.c and SYS_NI in kernel/time/posix-stubs.c to cover this
68 * case as well.
69 */
70 #define __IA32_COMPAT_SYS_STUB0(name) \
71 __SYS_STUB0(ia32, compat_sys_##name)
72
73 #define __IA32_COMPAT_SYS_STUBx(x, name, ...) \
74 __SYS_STUBx(ia32, compat_sys##name, \
75 SC_IA32_REGS_TO_ARGS(x, __VA_ARGS__))
76
77 #define __IA32_COMPAT_COND_SYSCALL(name) \
> 78 __COND_SYSCALL(ia32, compat_sys_##name)
79
80 #define __IA32_SYS_STUB0(name) \
81 __SYS_STUB0(ia32, sys_##name)
82
83 #define __IA32_SYS_STUBx(x, name, ...) \
84 __SYS_STUBx(ia32, sys##name, \
85 SC_IA32_REGS_TO_ARGS(x, __VA_ARGS__))
86
87 #define __IA32_COND_SYSCALL(name) \
> 88 __COND_SYSCALL(ia32, sys_##name)
89
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[PATCH] riscv: fix bugon.cocci warnings
by Julia Lawall
From: kernel test robot <lkp(a)intel.com>
Use BUG_ON instead of a if condition followed by BUG.
Generated by: scripts/coccinelle/misc/bugon.cocci
Fixes: c22b0bcb1dd0 ("riscv: Add kprobes supported")
CC: Guo Ren <guoren(a)linux.alibaba.com>
Reported-by: kernel test robot <lkp(a)intel.com>
Signed-off-by: kernel test robot <lkp(a)intel.com>
Signed-off-by: Julia Lawall <julia.lawall(a)inria.fr>
---
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5695e51619745d4fe3ec2506a2f0cd982c5e27a4
commit: c22b0bcb1dd024cb9caad9230e3a387d8b061df5 riscv: Add kprobes supported
:::::: branch date: 3 hours ago
:::::: commit date: 6 weeks ago
kprobes.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
--- a/arch/riscv/kernel/probes/kprobes.c
+++ b/arch/riscv/kernel/probes/kprobes.c
@@ -256,8 +256,7 @@ int __kprobes kprobe_fault_handler(struc
* normal page fault.
*/
regs->epc = (unsigned long) cur->addr;
- if (!instruction_pointer(regs))
- BUG();
+ BUG_ON(!instruction_pointer(regs));
if (kcb->kprobe_status == KPROBE_REENTER)
restore_previous_kprobe(kcb);
1 year, 6 months
[ext3:for_next 7/16] kernel/sys_ni.c:102:1: warning: no previous prototype for function '__arm64_sys_quotactl_path'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git for_next
head: 4c8e583da146ce683ce590d82107deac6d7199f4
commit: 72dd1ce7ebd305e0b37dbecbce3ee220241db18c [7/16] quota: wire up quotactl_path
config: arm64-randconfig-r005-20210316 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 50c7504a93fdb90c26870db8c8ea7add895c7725)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git/commit/...
git remote add ext3 https://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git
git fetch --no-tags ext3 for_next
git checkout 72dd1ce7ebd305e0b37dbecbce3ee220241db18c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:58:1: note: expanded from here
__arm64_sys_epoll_pwait2
^
kernel/sys_ni.c:71:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:77:1: warning: no previous prototype for function '__arm64_sys_inotify_init1' [-Wmissing-prototypes]
COND_SYSCALL(inotify_init1);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:63:1: note: expanded from here
__arm64_sys_inotify_init1
^
kernel/sys_ni.c:77:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:78:1: warning: no previous prototype for function '__arm64_sys_inotify_add_watch' [-Wmissing-prototypes]
COND_SYSCALL(inotify_add_watch);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:64:1: note: expanded from here
__arm64_sys_inotify_add_watch
^
kernel/sys_ni.c:78:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:79:1: warning: no previous prototype for function '__arm64_sys_inotify_rm_watch' [-Wmissing-prototypes]
COND_SYSCALL(inotify_rm_watch);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:65:1: note: expanded from here
__arm64_sys_inotify_rm_watch
^
kernel/sys_ni.c:79:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:84:1: warning: no previous prototype for function '__arm64_sys_ioprio_set' [-Wmissing-prototypes]
COND_SYSCALL(ioprio_set);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:66:1: note: expanded from here
__arm64_sys_ioprio_set
^
kernel/sys_ni.c:84:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:85:1: warning: no previous prototype for function '__arm64_sys_ioprio_get' [-Wmissing-prototypes]
COND_SYSCALL(ioprio_get);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:67:1: note: expanded from here
__arm64_sys_ioprio_get
^
kernel/sys_ni.c:85:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:88:1: warning: no previous prototype for function '__arm64_sys_flock' [-Wmissing-prototypes]
COND_SYSCALL(flock);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:68:1: note: expanded from here
__arm64_sys_flock
^
kernel/sys_ni.c:88:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:101:1: warning: no previous prototype for function '__arm64_sys_quotactl' [-Wmissing-prototypes]
COND_SYSCALL(quotactl);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:69:1: note: expanded from here
__arm64_sys_quotactl
^
kernel/sys_ni.c:101:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
>> kernel/sys_ni.c:102:1: warning: no previous prototype for function '__arm64_sys_quotactl_path' [-Wmissing-prototypes]
COND_SYSCALL(quotactl_path);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:70:1: note: expanded from here
__arm64_sys_quotactl_path
^
kernel/sys_ni.c:102:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:113:1: warning: no previous prototype for function '__arm64_sys_signalfd4' [-Wmissing-prototypes]
COND_SYSCALL(signalfd4);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:71:1: note: expanded from here
__arm64_sys_signalfd4
^
kernel/sys_ni.c:113:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:123:1: warning: no previous prototype for function '__arm64_sys_timerfd_create' [-Wmissing-prototypes]
COND_SYSCALL(timerfd_create);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:76:1: note: expanded from here
__arm64_sys_timerfd_create
^
kernel/sys_ni.c:123:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:124:1: warning: no previous prototype for function '__arm64_sys_timerfd_settime' [-Wmissing-prototypes]
COND_SYSCALL(timerfd_settime);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:77:1: note: expanded from here
__arm64_sys_timerfd_settime
^
kernel/sys_ni.c:124:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:125:1: warning: no previous prototype for function '__arm64_sys_timerfd_settime32' [-Wmissing-prototypes]
COND_SYSCALL(timerfd_settime32);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:78:1: note: expanded from here
__arm64_sys_timerfd_settime32
^
kernel/sys_ni.c:125:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:126:1: warning: no previous prototype for function '__arm64_sys_timerfd_gettime' [-Wmissing-prototypes]
COND_SYSCALL(timerfd_gettime);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:79:1: note: expanded from here
__arm64_sys_timerfd_gettime
^
kernel/sys_ni.c:126:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:127:1: warning: no previous prototype for function '__arm64_sys_timerfd_gettime32' [-Wmissing-prototypes]
COND_SYSCALL(timerfd_gettime32);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:80:1: note: expanded from here
__arm64_sys_timerfd_gettime32
^
kernel/sys_ni.c:127:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:132:1: warning: no previous prototype for function '__arm64_sys_acct' [-Wmissing-prototypes]
COND_SYSCALL(acct);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:81:1: note: expanded from here
__arm64_sys_acct
^
kernel/sys_ni.c:132:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
vim +/__arm64_sys_quotactl_path +102 kernel/sys_ni.c
99
100 /* fs/quota.c */
101 COND_SYSCALL(quotactl);
> 102 COND_SYSCALL(quotactl_path);
103
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[jgunthorpe:pr/3 49/71] samples/vfio-mdev/mtty.c:1224:37: warning: unused variable 'mtty_dev_group'
by kernel test robot
tree: https://github.com/jgunthorpe/linux pr/3
head: b163c489706535cda3e491e2cfca613b93e687c5
commit: 387b670a2ff6320c94fb3c2de7bce9b10cd01ae8 [49/71] vfio/mdev: Remove mdev_parent_ops dev_attr_groups
config: arm-randconfig-r035-20210317 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8ef111222a3dd12a9175f69c3bff598c46e8bdf7)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/jgunthorpe/linux/commit/387b670a2ff6320c94fb3c2de7bce9...
git remote add jgunthorpe https://github.com/jgunthorpe/linux
git fetch --no-tags jgunthorpe pr/3
git checkout 387b670a2ff6320c94fb3c2de7bce9b10cd01ae8
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> samples/vfio-mdev/mtty.c:1224:37: warning: unused variable 'mtty_dev_group' [-Wunused-const-variable]
static const struct attribute_group mtty_dev_group = {
^
1 warning generated.
vim +/mtty_dev_group +1224 samples/vfio-mdev/mtty.c
9d1a546c53b4c1 Kirti Wankhede 2016-11-17 1223
9d1a546c53b4c1 Kirti Wankhede 2016-11-17 @1224 static const struct attribute_group mtty_dev_group = {
9d1a546c53b4c1 Kirti Wankhede 2016-11-17 1225 .name = "mtty_dev",
9d1a546c53b4c1 Kirti Wankhede 2016-11-17 1226 .attrs = mtty_dev_attrs,
9d1a546c53b4c1 Kirti Wankhede 2016-11-17 1227 };
9d1a546c53b4c1 Kirti Wankhede 2016-11-17 1228
:::::: The code at line 1224 was first introduced by commit
:::::: 9d1a546c53b4c1c378b0f34de84ddee2c7d4c90c docs: Sample driver to demonstrate how to use Mediated device framework.
:::::: TO: Kirti Wankhede <kwankhede(a)nvidia.com>
:::::: CC: Alex Williamson <alex.williamson(a)redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
Re: [PATCH] mm: Move mem_init_print_info() into mm_init()
by kernel test robot
Hi Kefeng,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on tip/x86/mm]
[also build test ERROR on linus/master v5.12-rc3 next-20210316]
[cannot apply to hnaz-linux-mm/master sparc/master sparc-next/master]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Kefeng-Wang/mm-Move-mem_init_pri...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git a500fc918f7b8dc3dff2e6c74f3e73e856c18248
config: riscv-randconfig-r031-20210316 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 50c7504a93fdb90c26870db8c8ea7add895c7725)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/0day-ci/linux/commit/0b2c07917fb7f9f87f0e2ecac3a398515...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Kefeng-Wang/mm-Move-mem_init_print_info-into-mm_init/20210316-222501
git checkout 0b2c07917fb7f9f87f0e2ecac3a3985155778856
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
mm/page_alloc.c:3600:15: warning: no previous prototype for function 'should_fail_alloc_page' [-Wmissing-prototypes]
noinline bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order)
^
mm/page_alloc.c:3600:10: note: declare 'static' if the function is not intended to be used outside of this translation unit
noinline bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order)
^
static
>> mm/page_alloc.c:7744:3: error: use of undeclared identifier 'str'
str ? ", " : "", str ? str : "");
^
mm/page_alloc.c:7744:20: error: use of undeclared identifier 'str'
str ? ", " : "", str ? str : "");
^
mm/page_alloc.c:7744:26: error: use of undeclared identifier 'str'
str ? ", " : "", str ? str : "");
^
1 warning and 3 errors generated.
vim +/str +7744 mm/page_alloc.c
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7729
756a025f000919 Joe Perches 2016-03-17 7730 pr_info("Memory: %luK/%luK available (%luK kernel code, %luK rwdata, %luK rodata, %luK init, %luK bss, %luK reserved, %luK cma-reserved"
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7731 #ifdef CONFIG_HIGHMEM
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7732 ", %luK highmem"
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7733 #endif
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7734 "%s%s)\n",
756a025f000919 Joe Perches 2016-03-17 7735 nr_free_pages() << (PAGE_SHIFT - 10),
756a025f000919 Joe Perches 2016-03-17 7736 physpages << (PAGE_SHIFT - 10),
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7737 codesize >> 10, datasize >> 10, rosize >> 10,
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7738 (init_data_size + init_code_size) >> 10, bss_size >> 10,
ca79b0c211af63 Arun KS 2018-12-28 7739 (physpages - totalram_pages() - totalcma_pages) << (PAGE_SHIFT - 10),
e48322abb061d7 Pintu Kumar 2014-12-18 7740 totalcma_pages << (PAGE_SHIFT - 10),
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7741 #ifdef CONFIG_HIGHMEM
ca79b0c211af63 Arun KS 2018-12-28 7742 totalhigh_pages() << (PAGE_SHIFT - 10),
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7743 #endif
7ee3d4e8cd5605 Jiang Liu 2013-07-03 @7744 str ? ", " : "", str ? str : "");
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7745 }
7ee3d4e8cd5605 Jiang Liu 2013-07-03 7746
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[peterz-queue:sched/core-sched 12/19] kernel/sched/fair.c:10771:6: warning: no previous prototype for 'task_vruntime_update'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/core-sched
head: bd5f71ae62a7c0b435fef9392db13aa2eed28bf9
commit: 1f9adabdf352cc0ce23daa8733a738d5bd1b7546 [12/19] sched/fair: Snapshot the min_vruntime of CPUs on force idle
config: ia64-randconfig-r005-20210316 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?...
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue sched/core-sched
git checkout 1f9adabdf352cc0ce23daa8733a738d5bd1b7546
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from arch/ia64/include/asm/pgtable.h:154,
from include/linux/pgtable.h:6,
from arch/ia64/include/asm/uaccess.h:40,
from include/linux/uaccess.h:11,
from include/linux/sched/task.h:11,
from include/linux/sched/signal.h:9,
from include/linux/sched/cputime.h:5,
from kernel/sched/sched.h:11,
from kernel/sched/fair.c:23:
arch/ia64/include/asm/mmu_context.h: In function 'reload_context':
arch/ia64/include/asm/mmu_context.h:127:41: warning: variable 'old_rr4' set but not used [-Wunused-but-set-variable]
127 | unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;
| ^~~~~~~
kernel/sched/fair.c: At top level:
kernel/sched/fair.c:5347:6: warning: no previous prototype for 'init_cfs_bandwidth' [-Wmissing-prototypes]
5347 | void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
| ^~~~~~~~~~~~~~~~~~
>> kernel/sched/fair.c:10771:6: warning: no previous prototype for 'task_vruntime_update' [-Wmissing-prototypes]
10771 | void task_vruntime_update(struct rq *rq, struct task_struct *p, bool in_fi)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/fair.c:11298:6: warning: no previous prototype for 'free_fair_sched_group' [-Wmissing-prototypes]
11298 | void free_fair_sched_group(struct task_group *tg) { }
| ^~~~~~~~~~~~~~~~~~~~~
kernel/sched/fair.c:11300:5: warning: no previous prototype for 'alloc_fair_sched_group' [-Wmissing-prototypes]
11300 | int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/sched/fair.c:11305:6: warning: no previous prototype for 'online_fair_sched_group' [-Wmissing-prototypes]
11305 | void online_fair_sched_group(struct task_group *tg) { }
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/fair.c:11307:6: warning: no previous prototype for 'unregister_fair_sched_group' [-Wmissing-prototypes]
11307 | void unregister_fair_sched_group(struct task_group *tg) { }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/fair.c:8381:13: warning: 'update_nohz_stats' defined but not used [-Wunused-function]
8381 | static bool update_nohz_stats(struct rq *rq)
| ^~~~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for FRAME_POINTER
Depends on DEBUG_KERNEL && (M68K || UML || SUPERH) || ARCH_WANT_FRAME_POINTERS
Selected by
- FAULT_INJECTION_STACKTRACE_FILTER && FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT && !X86_64 && !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM && !ARC && !X86
vim +/task_vruntime_update +10771 kernel/sched/fair.c
10770
10771 void task_vruntime_update(struct rq *rq, struct task_struct *p, bool in_fi)
10772 {
10773 struct sched_entity *se = &p->se;
10774
10775 if (p->sched_class != &fair_sched_class)
10776 return;
10777
10778 se_fi_update(se, rq->core->core_forceidle_seq, in_fi);
10779 }
10780
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[vkoul-dmaengine:next 4/16] drivers/dma/dw-edma/dw-edma-v0-core.c:326 dw_edma_v0_core_write_chunk() warn: inconsistent indenting
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
head: 84b0aa2e0d91d7974c6cfcb3a1ce230e7366293e
commit: e0c1d53891c43a70c9fa85ddb3174ab5afd7e2ec [4/16] dmaengine: dw-edma: Add support for the HDMA feature
config: x86_64-randconfig-m001-20210316 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
New smatch warnings:
drivers/dma/dw-edma/dw-edma-v0-core.c:326 dw_edma_v0_core_write_chunk() warn: inconsistent indenting
drivers/dma/dw-edma/dw-edma-v0-core.c:418 dw_edma_v0_core_start() warn: inconsistent indenting
Old smatch warnings:
drivers/dma/dw-edma/dw-edma-v0-core.c:350 dw_edma_v0_core_write_chunk() warn: inconsistent indenting
vim +326 drivers/dma/dw-edma/dw-edma-v0-core.c
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 300
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 301 static void dw_edma_v0_core_write_chunk(struct dw_edma_chunk *chunk)
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 302 {
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 303 struct dw_edma_burst *child;
756c3ef93492af Arnd Bergmann 2019-07-22 304 struct dw_edma_v0_lli __iomem *lli;
756c3ef93492af Arnd Bergmann 2019-07-22 305 struct dw_edma_v0_llp __iomem *llp;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 306 u32 control = 0, i = 0;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 307 int j;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 308
756c3ef93492af Arnd Bergmann 2019-07-22 309 lli = chunk->ll_region.vaddr;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 310
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 311 if (chunk->cb)
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 312 control = DW_EDMA_V0_CB;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 313
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 314 j = chunk->bursts_alloc;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 315 list_for_each_entry(child, &chunk->burst->list, list) {
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 316 j--;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 317 if (!j)
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 318 control |= (DW_EDMA_V0_LIE | DW_EDMA_V0_RIE);
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 319
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 320 /* Channel control */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 321 SET_LL_32(&lli[i].control, control);
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 322 /* Transfer size */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 323 SET_LL_32(&lli[i].transfer_size, child->sz);
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 324 /* SAR */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 325 #ifdef CONFIG_64BIT
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 @326 SET_LL_64(&lli[i].sar.reg, child->sar);
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 327 #else /* CONFIG_64BIT */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 328 SET_LL_32(&lli[i].sar.lsb, lower_32_bits(child->sar));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 329 SET_LL_32(&lli[i].sar.msb, upper_32_bits(child->sar));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 330 #endif /* CONFIG_64BIT */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 331 /* DAR */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 332 #ifdef CONFIG_64BIT
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 333 SET_LL_64(&lli[i].dar.reg, child->dar);
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 334 #else /* CONFIG_64BIT */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 335 SET_LL_32(&lli[i].dar.lsb, lower_32_bits(child->dar));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 336 SET_LL_32(&lli[i].dar.msb, upper_32_bits(child->dar));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 337 #endif /* CONFIG_64BIT */
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 338 i++;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 339 }
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 340
756c3ef93492af Arnd Bergmann 2019-07-22 341 llp = (void __iomem *)&lli[i];
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 342 control = DW_EDMA_V0_LLP | DW_EDMA_V0_TCB;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 343 if (!chunk->cb)
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 344 control |= DW_EDMA_V0_CB;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 345
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 346 /* Channel control */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 347 SET_LL_32(&llp->control, control);
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 348 /* Linked list */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 349 #ifdef CONFIG_64BIT
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 350 SET_LL_64(&llp->llp.reg, chunk->ll_region.paddr);
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 351 #else /* CONFIG_64BIT */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 352 SET_LL_32(&llp->llp.lsb, lower_32_bits(chunk->ll_region.paddr));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 353 SET_LL_32(&llp->llp.msb, upper_32_bits(chunk->ll_region.paddr));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 354 #endif /* CONFIG_64BIT */
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 355 }
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 356
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 357 void dw_edma_v0_core_start(struct dw_edma_chunk *chunk, bool first)
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 358 {
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 359 struct dw_edma_chan *chan = chunk->chan;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 360 struct dw_edma *dw = chan->chip->dw;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 361 u32 tmp;
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 362
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 363 dw_edma_v0_core_write_chunk(chunk);
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 364
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 365 if (first) {
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 366 /* Enable engine */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 367 SET_RW_32(dw, chan->dir, engine_en, BIT(0));
e0c1d53891c43a Gustavo Pimentel 2021-02-18 368 if (dw->mf == EDMA_MF_HDMA_COMPAT) {
e0c1d53891c43a Gustavo Pimentel 2021-02-18 369 switch (chan->id) {
e0c1d53891c43a Gustavo Pimentel 2021-02-18 370 case 0:
e0c1d53891c43a Gustavo Pimentel 2021-02-18 371 SET_RW_COMPAT(dw, chan->dir, ch0_pwr_en,
e0c1d53891c43a Gustavo Pimentel 2021-02-18 372 BIT(0));
e0c1d53891c43a Gustavo Pimentel 2021-02-18 373 break;
e0c1d53891c43a Gustavo Pimentel 2021-02-18 374 case 1:
e0c1d53891c43a Gustavo Pimentel 2021-02-18 375 SET_RW_COMPAT(dw, chan->dir, ch1_pwr_en,
e0c1d53891c43a Gustavo Pimentel 2021-02-18 376 BIT(0));
e0c1d53891c43a Gustavo Pimentel 2021-02-18 377 break;
e0c1d53891c43a Gustavo Pimentel 2021-02-18 378 case 2:
e0c1d53891c43a Gustavo Pimentel 2021-02-18 379 SET_RW_COMPAT(dw, chan->dir, ch2_pwr_en,
e0c1d53891c43a Gustavo Pimentel 2021-02-18 380 BIT(0));
e0c1d53891c43a Gustavo Pimentel 2021-02-18 381 break;
e0c1d53891c43a Gustavo Pimentel 2021-02-18 382 case 3:
e0c1d53891c43a Gustavo Pimentel 2021-02-18 383 SET_RW_COMPAT(dw, chan->dir, ch3_pwr_en,
e0c1d53891c43a Gustavo Pimentel 2021-02-18 384 BIT(0));
e0c1d53891c43a Gustavo Pimentel 2021-02-18 385 break;
e0c1d53891c43a Gustavo Pimentel 2021-02-18 386 case 4:
e0c1d53891c43a Gustavo Pimentel 2021-02-18 387 SET_RW_COMPAT(dw, chan->dir, ch4_pwr_en,
e0c1d53891c43a Gustavo Pimentel 2021-02-18 388 BIT(0));
e0c1d53891c43a Gustavo Pimentel 2021-02-18 389 break;
e0c1d53891c43a Gustavo Pimentel 2021-02-18 390 case 5:
e0c1d53891c43a Gustavo Pimentel 2021-02-18 391 SET_RW_COMPAT(dw, chan->dir, ch5_pwr_en,
e0c1d53891c43a Gustavo Pimentel 2021-02-18 392 BIT(0));
e0c1d53891c43a Gustavo Pimentel 2021-02-18 393 break;
e0c1d53891c43a Gustavo Pimentel 2021-02-18 394 case 6:
e0c1d53891c43a Gustavo Pimentel 2021-02-18 395 SET_RW_COMPAT(dw, chan->dir, ch6_pwr_en,
e0c1d53891c43a Gustavo Pimentel 2021-02-18 396 BIT(0));
e0c1d53891c43a Gustavo Pimentel 2021-02-18 397 break;
e0c1d53891c43a Gustavo Pimentel 2021-02-18 398 case 7:
e0c1d53891c43a Gustavo Pimentel 2021-02-18 399 SET_RW_COMPAT(dw, chan->dir, ch7_pwr_en,
e0c1d53891c43a Gustavo Pimentel 2021-02-18 400 BIT(0));
e0c1d53891c43a Gustavo Pimentel 2021-02-18 401 break;
e0c1d53891c43a Gustavo Pimentel 2021-02-18 402 }
e0c1d53891c43a Gustavo Pimentel 2021-02-18 403 }
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 404 /* Interrupt unmask - done, abort */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 405 tmp = GET_RW_32(dw, chan->dir, int_mask);
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 406 tmp &= ~FIELD_PREP(EDMA_V0_DONE_INT_MASK, BIT(chan->id));
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 407 tmp &= ~FIELD_PREP(EDMA_V0_ABORT_INT_MASK, BIT(chan->id));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 408 SET_RW_32(dw, chan->dir, int_mask, tmp);
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 409 /* Linked list error */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 410 tmp = GET_RW_32(dw, chan->dir, linked_list_err_en);
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 411 tmp |= FIELD_PREP(EDMA_V0_LINKED_LIST_ERR_MASK, BIT(chan->id));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 412 SET_RW_32(dw, chan->dir, linked_list_err_en, tmp);
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 413 /* Channel control */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 414 SET_CH_32(dw, chan->dir, chan->id, ch_control1,
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 415 (DW_EDMA_V0_CCS | DW_EDMA_V0_LLE));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 416 /* Linked list */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 417 #ifdef CONFIG_64BIT
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 @418 SET_CH_64(dw, chan->dir, chan->id, llp.reg,
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 419 chunk->ll_region.paddr);
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 420 #else /* CONFIG_64BIT */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 421 SET_CH_32(dw, chan->dir, chan->id, llp.lsb,
6f4722b1d1ebf2 Arnd Bergmann 2019-07-22 422 lower_32_bits(chunk->ll_region.paddr));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 423 SET_CH_32(dw, chan->dir, chan->id, llp.msb,
6f4722b1d1ebf2 Arnd Bergmann 2019-07-22 424 upper_32_bits(chunk->ll_region.paddr));
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 425 #endif /* CONFIG_64BIT */
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 426 }
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 427 /* Doorbell */
04e0a39fc10f82 Gustavo Pimentel 2021-02-18 428 SET_RW_32(dw, chan->dir, doorbell,
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 429 FIELD_PREP(EDMA_V0_DOORBELL_CH_MASK, chan->id));
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 430 }
7e4b8a4fbe2cec Gustavo Pimentel 2019-06-04 431
:::::: The code at line 326 was first introduced by commit
:::::: 04e0a39fc10f82a71b84af73351333b184cee578 dmaengine: dw-edma: Add writeq() and readq() for 64 bits architectures
:::::: TO: Gustavo Pimentel <Gustavo.Pimentel(a)synopsys.com>
:::::: CC: Vinod Koul <vkoul(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months