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

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)

   net/netfilter/nf_tables_api.c:1405:25: sparse: sparse: cast between address 
spaces (__percpu -> __rcu)
   net/netfilter/nf_tables_api.c:1405:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   net/netfilter/nf_tables_api.c:1405:25: sparse:    struct nft_stats [noderef] 
__rcu *
   net/netfilter/nf_tables_api.c:1405:25: sparse:    struct nft_stats [noderef] 
__percpu *
   net/netfilter/nf_tables_api.c:1567:31: sparse: sparse: incorrect type in 
return expression (different address spaces) @@     expected struct nft_stats 
[noderef] __percpu * @@     got void * @@
   net/netfilter/nf_tables_api.c:1570:31: sparse: sparse: incorrect type in 
return expression (different address spaces) @@     expected struct nft_stats 
[noderef] __percpu * @@     got void * @@
   net/netfilter/nf_tables_api.c:1574:31: sparse: sparse: incorrect type in 
return expression (different address spaces) @@     expected struct nft_stats 
[noderef] __percpu * @@     got void * @@
   net/netfilter/nf_tables_api.c:1596:17: sparse: sparse: cast between address 
spaces (__percpu -> __rcu)
   net/netfilter/nf_tables_api.c:1596:17: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   net/netfilter/nf_tables_api.c:1596:17: sparse:    struct nft_stats [noderef] 
__rcu *
   net/netfilter/nf_tables_api.c:1596:17: sparse:    struct nft_stats [noderef] 
__percpu *
   net/netfilter/nf_tables_api.c:1596:17: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   net/netfilter/nf_tables_api.c:1596:17: sparse:    struct nft_stats [noderef] 
__rcu *
   net/netfilter/nf_tables_api.c:1596:17: sparse:    struct nft_stats [noderef] 
__percpu *
   net/netfilter/nf_tables_api.c:1639:21: sparse: sparse: cast between address 
spaces (__percpu -> __rcu)
   net/netfilter/nf_tables_api.c:1639:21: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   net/netfilter/nf_tables_api.c:1639:21: sparse:    struct nft_stats [noderef] 
__rcu *
   net/netfilter/nf_tables_api.c:1639:21: sparse:    struct nft_stats [noderef] 
__percpu *
   net/netfilter/nf_tables_api.c:1947:25: sparse: sparse: cast between address 
spaces (__percpu -> __rcu)
   net/netfilter/nf_tables_api.c:1947:25: sparse: sparse: incompatible types in 
comparison expression (different address spaces):
   net/netfilter/nf_tables_api.c:1947:25: sparse:    struct nft_stats [noderef] 
__rcu *
   net/netfilter/nf_tables_api.c:1947:25: sparse:    struct nft_stats [noderef] 
__percpu *
   net/netfilter/nf_tables_api.c:2097:23: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected struct nft_stats *stats 
@@     got struct nft_stats [noderef] __percpu * @@
   net/netfilter/nf_tables_api.c:2097:23: sparse:     expected struct nft_stats 
*stats
>> net/netfilter/nf_tables_api.c:2097:23: sparse:     got struct nft_stats 
>> [noderef] __percpu *
   net/netfilter/nf_tables_api.c:2108:38: sparse: sparse: incorrect type in 
assignment (different address spaces) @@     expected struct nft_stats 
[noderef] __percpu *stats @@     got struct nft_stats *stats @@
>> net/netfilter/nf_tables_api.c:2108:38: sparse:     expected struct nft_stats 
>> [noderef] __percpu *stats
   net/netfilter/nf_tables_api.c:2108:38: sparse:     got struct nft_stats 
*stats
   net/netfilter/nf_tables_api.c:2144:21: sparse: sparse: incorrect type in 
argument 1 (different address spaces) @@     expected void [noderef] __percpu 
*__pdata @@     got struct nft_stats *stats @@
>> net/netfilter/nf_tables_api.c:2144:21: sparse:     expected void [noderef] 
>> __percpu *__pdata
   net/netfilter/nf_tables_api.c:2144:21: sparse:     got struct nft_stats 
*stats
   include/linux/rcupdate.h:686:9: sparse: sparse: context imbalance in 
'nft_netlink_dump_start_rcu' - unexpected unlock
--
>> drivers/rpmsg/qcom_glink_smem.c:93:17: sparse: sparse: incorrect type in 
>> argument 2 (different address spaces) @@     expected void const volatile 
>> [noderef] __iomem * @@     got void * @@
>> drivers/rpmsg/qcom_glink_smem.c:93:17: sparse:     expected void const 
>> volatile [noderef] __iomem *
   drivers/rpmsg/qcom_glink_smem.c:93:17: sparse:     got void *
>> drivers/rpmsg/qcom_glink_smem.c:96:17: sparse: sparse: incorrect type in 
>> argument 2 (different address spaces) @@     expected void const volatile 
>> [noderef] __iomem * @@     got void *fifo @@
   drivers/rpmsg/qcom_glink_smem.c:96:17: sparse:     expected void const 
volatile [noderef] __iomem *
   drivers/rpmsg/qcom_glink_smem.c:96:17: sparse:     got void *fifo

vim +2097 net/netfilter/nf_tables_api.c

d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2034  
c9626a2cbdb20e Pablo Neira Ayuso 2019-07-09  2035  static int 
nf_tables_updchain(struct nft_ctx *ctx, u8 genmask, u8 policy,
c9626a2cbdb20e Pablo Neira Ayuso 2019-07-09  2036                             
u32 flags)
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2037  {
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2038       const struct nlattr * 
const *nla = ctx->nla;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2039       struct nft_table *table 
= ctx->table;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2040       struct nft_chain *chain 
= ctx->chain;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2041       struct nft_base_chain 
*basechain;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2042       struct nft_stats *stats 
= NULL;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2043       struct nft_chain_hook 
hook;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2044       struct nf_hook_ops *ops;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2045       struct nft_trans *trans;
c974a3a36468d1 Pablo Neira Ayuso 2017-12-09  2046       int err;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2047  
c9626a2cbdb20e Pablo Neira Ayuso 2019-07-09  2048       if (chain->flags ^ 
flags)
c9626a2cbdb20e Pablo Neira Ayuso 2019-07-09  2049               return 
-EOPNOTSUPP;
c9626a2cbdb20e Pablo Neira Ayuso 2019-07-09  2050  
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2051       if 
(nla[NFTA_CHAIN_HOOK]) {
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2052               if 
(!nft_is_base_chain(chain))
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2053                       return 
-EBUSY;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2054  
36596dadf54a92 Pablo Neira Ayuso 2018-01-09  2055               err = 
nft_chain_parse_hook(ctx->net, nla, &hook, ctx->family,
445509eb9b0027 Pablo Neira Ayuso 2018-08-03  2056                               
           false);
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2057               if (err < 0)
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2058                       return 
err;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2059  
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2060               basechain = 
nft_base_chain(chain);
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2061               if 
(basechain->type != hook.type) {
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2062                       
nft_chain_release_hook(&hook);
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2063                       return 
-EBUSY;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2064               }
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2065  
d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2066               if (ctx->family 
== NFPROTO_NETDEV) {
d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2067                       if 
(!nft_hook_list_equal(&basechain->hook_list,
d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2068                               
                 &hook.list)) {
d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2069                               
nft_chain_release_hook(&hook);
d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2070                               
return -EBUSY;
d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2071                       }
d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2072               } else {
c974a3a36468d1 Pablo Neira Ayuso 2017-12-09  2073                       ops = 
&basechain->ops;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2074                       if 
(ops->hooknum != hook.num ||
d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2075                           
ops->priority != hook.priority) {
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2076                               
nft_chain_release_hook(&hook);
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2077                               
return -EBUSY;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2078                       }
d54725cd11a57c Pablo Neira Ayuso 2019-10-16  2079               }
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2080               
nft_chain_release_hook(&hook);
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2081       }
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2082  
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2083       if 
(nla[NFTA_CHAIN_HANDLE] &&
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2084           
nla[NFTA_CHAIN_NAME]) {
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2085               struct 
nft_chain *chain2;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2086  
f102d66b335a41 Florian Westphal  2018-07-11  2087               chain2 = 
nft_chain_lookup(ctx->net, table,
f102d66b335a41 Florian Westphal  2018-07-11  2088                               
          nla[NFTA_CHAIN_NAME], genmask);
0d18779be13766 JingPiao Chen     2017-09-23  2089               if 
(!IS_ERR(chain2))
0d18779be13766 JingPiao Chen     2017-09-23  2090                       return 
-EEXIST;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2091       }
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2092  
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2093       if 
(nla[NFTA_CHAIN_COUNTERS]) {
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2094               if 
(!nft_is_base_chain(chain))
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2095                       return 
-EOPNOTSUPP;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2096  
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03 @2097               stats = 
nft_stats_alloc(nla[NFTA_CHAIN_COUNTERS]);
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2098               if 
(IS_ERR(stats))
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2099                       return 
PTR_ERR(stats);
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2100       }
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2101  
c6cc94df65c317 Florian Westphal  2018-07-17  2102       err = -ENOMEM;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2103       trans = 
nft_trans_alloc(ctx, NFT_MSG_NEWCHAIN,
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2104                               
sizeof(struct nft_trans_chain));
c6cc94df65c317 Florian Westphal  2018-07-17  2105       if (trans == NULL)
c6cc94df65c317 Florian Westphal  2018-07-17  2106               goto err;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2107  
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03 @2108       
nft_trans_chain_stats(trans) = stats;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2109       
nft_trans_chain_update(trans) = true;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2110  
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2111       if 
(nla[NFTA_CHAIN_POLICY])
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2112               
nft_trans_chain_policy(trans) = policy;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2113       else
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2114               
nft_trans_chain_policy(trans) = -1;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2115  
c6cc94df65c317 Florian Westphal  2018-07-17  2116       if 
(nla[NFTA_CHAIN_HANDLE] &&
c6cc94df65c317 Florian Westphal  2018-07-17  2117           
nla[NFTA_CHAIN_NAME]) {
c6cc94df65c317 Florian Westphal  2018-07-17  2118               struct 
nft_trans *tmp;
c6cc94df65c317 Florian Westphal  2018-07-17  2119               char *name;
c6cc94df65c317 Florian Westphal  2018-07-17  2120  
c6cc94df65c317 Florian Westphal  2018-07-17  2121               err = -ENOMEM;
c6cc94df65c317 Florian Westphal  2018-07-17  2122               name = 
nla_strdup(nla[NFTA_CHAIN_NAME], GFP_KERNEL);
c6cc94df65c317 Florian Westphal  2018-07-17  2123               if (!name)
c6cc94df65c317 Florian Westphal  2018-07-17  2124                       goto 
err;
c6cc94df65c317 Florian Westphal  2018-07-17  2125  
c6cc94df65c317 Florian Westphal  2018-07-17  2126               err = -EEXIST;
c6cc94df65c317 Florian Westphal  2018-07-17  2127               
list_for_each_entry(tmp, &ctx->net->nft.commit_list, list) {
c6cc94df65c317 Florian Westphal  2018-07-17  2128                       if 
(tmp->msg_type == NFT_MSG_NEWCHAIN &&
c6cc94df65c317 Florian Westphal  2018-07-17  2129                           
tmp->ctx.table == table &&
c6cc94df65c317 Florian Westphal  2018-07-17  2130                           
nft_trans_chain_update(tmp) &&
c6cc94df65c317 Florian Westphal  2018-07-17  2131                           
nft_trans_chain_name(tmp) &&
c6cc94df65c317 Florian Westphal  2018-07-17  2132                           
strcmp(name, nft_trans_chain_name(tmp)) == 0) {
c6cc94df65c317 Florian Westphal  2018-07-17  2133                               
kfree(name);
c6cc94df65c317 Florian Westphal  2018-07-17  2134                               
goto err;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2135                       }
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2136               }
c6cc94df65c317 Florian Westphal  2018-07-17  2137  
c6cc94df65c317 Florian Westphal  2018-07-17  2138               
nft_trans_chain_name(trans) = name;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2139       }
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2140       
list_add_tail(&trans->list, &ctx->net->nft.commit_list);
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2141  
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2142       return 0;
c6cc94df65c317 Florian Westphal  2018-07-17  2143  err:
c6cc94df65c317 Florian Westphal  2018-07-17 @2144       free_percpu(stats);
c6cc94df65c317 Florian Westphal  2018-07-17  2145       kfree(trans);
c6cc94df65c317 Florian Westphal  2018-07-17  2146       return err;
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2147  }
2c4a488a482d26 Pablo Neira Ayuso 2017-09-03  2148  

:::::: The code at line 2097 was first introduced by commit
:::::: 2c4a488a482d265df4505671f6051067524c4f76 netfilter: nf_tables: add 
nf_tables_updchain()

:::::: TO: Pablo Neira Ayuso <[email protected]>
:::::: CC: Pablo Neira Ayuso <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to