CC: kbuild-...@lists.01.org TO: "Christoph, Hellwig," <h...@lst.de> CC: Al Viro <v...@zeniv.linux.org.uk>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: e7b08814b16b80a0bf76eeca16317f8c2ed23b8c commit: 32927393dc1ccd60fb2bdc05b9e8e88753761469 [3942/14131] sysctl: pass kernel pointers to ->proc_handler :::::: branch date: 3 days ago :::::: commit date: 5 weeks ago config: i386-randconfig-s001-20200601 (attached as .config) compiler: gcc-9 (Debian 9.3.0-13) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.1-243-gc100a7ab-dirty git checkout 32927393dc1ccd60fb2bdc05b9e8e88753761469 # save the attached .config to linux build tree make W=1 C=1 ARCH=i386 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <l...@intel.com> sparse warnings: (new ones prefixed by >>) net/core/sysctl_net_core.c:129:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected char const [noderef] <asn:1> *buf @@ got void *buffer @@ net/core/sysctl_net_core.c:129:42: sparse: expected char const [noderef] <asn:1> *buf >> net/core/sysctl_net_core.c:129:42: sparse: got void *buffer # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=32927393dc1ccd60fb2bdc05b9e8e88753761469 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git remote update linux-next git checkout 32927393dc1ccd60fb2bdc05b9e8e88753761469 vim +129 net/core/sysctl_net_core.c 99bbc70741903c Willem de Bruijn 2013-05-20 116 fe2c6338fd2c6f Joe Perches 2013-06-11 117 static int flow_limit_cpu_sysctl(struct ctl_table *table, int write, 32927393dc1ccd Christoph Hellwig 2020-04-24 118 void *buffer, size_t *lenp, loff_t *ppos) 99bbc70741903c Willem de Bruijn 2013-05-20 119 { 99bbc70741903c Willem de Bruijn 2013-05-20 120 struct sd_flow_limit *cur; 99bbc70741903c Willem de Bruijn 2013-05-20 121 struct softnet_data *sd; 99bbc70741903c Willem de Bruijn 2013-05-20 122 cpumask_var_t mask; 99bbc70741903c Willem de Bruijn 2013-05-20 123 int i, len, ret = 0; 99bbc70741903c Willem de Bruijn 2013-05-20 124 99bbc70741903c Willem de Bruijn 2013-05-20 125 if (!alloc_cpumask_var(&mask, GFP_KERNEL)) 99bbc70741903c Willem de Bruijn 2013-05-20 126 return -ENOMEM; 99bbc70741903c Willem de Bruijn 2013-05-20 127 99bbc70741903c Willem de Bruijn 2013-05-20 128 if (write) { 99bbc70741903c Willem de Bruijn 2013-05-20 @129 ret = cpumask_parse_user(buffer, *lenp, mask); 99bbc70741903c Willem de Bruijn 2013-05-20 130 if (ret) 99bbc70741903c Willem de Bruijn 2013-05-20 131 goto done; 99bbc70741903c Willem de Bruijn 2013-05-20 132 99bbc70741903c Willem de Bruijn 2013-05-20 133 mutex_lock(&flow_limit_update_mutex); 99bbc70741903c Willem de Bruijn 2013-05-20 134 len = sizeof(*cur) + netdev_flow_limit_table_len; 99bbc70741903c Willem de Bruijn 2013-05-20 135 for_each_possible_cpu(i) { 99bbc70741903c Willem de Bruijn 2013-05-20 136 sd = &per_cpu(softnet_data, i); 99bbc70741903c Willem de Bruijn 2013-05-20 137 cur = rcu_dereference_protected(sd->flow_limit, 99bbc70741903c Willem de Bruijn 2013-05-20 138 lockdep_is_held(&flow_limit_update_mutex)); 99bbc70741903c Willem de Bruijn 2013-05-20 139 if (cur && !cpumask_test_cpu(i, mask)) { 99bbc70741903c Willem de Bruijn 2013-05-20 140 RCU_INIT_POINTER(sd->flow_limit, NULL); 99bbc70741903c Willem de Bruijn 2013-05-20 141 synchronize_rcu(); 99bbc70741903c Willem de Bruijn 2013-05-20 142 kfree(cur); 99bbc70741903c Willem de Bruijn 2013-05-20 143 } else if (!cur && cpumask_test_cpu(i, mask)) { 5b59d467ad9ff9 Eric Dumazet 2013-12-18 144 cur = kzalloc_node(len, GFP_KERNEL, 5b59d467ad9ff9 Eric Dumazet 2013-12-18 145 cpu_to_node(i)); 99bbc70741903c Willem de Bruijn 2013-05-20 146 if (!cur) { 99bbc70741903c Willem de Bruijn 2013-05-20 147 /* not unwinding previous changes */ 99bbc70741903c Willem de Bruijn 2013-05-20 148 ret = -ENOMEM; 99bbc70741903c Willem de Bruijn 2013-05-20 149 goto write_unlock; 99bbc70741903c Willem de Bruijn 2013-05-20 150 } 99bbc70741903c Willem de Bruijn 2013-05-20 151 cur->num_buckets = netdev_flow_limit_table_len; 99bbc70741903c Willem de Bruijn 2013-05-20 152 rcu_assign_pointer(sd->flow_limit, cur); 99bbc70741903c Willem de Bruijn 2013-05-20 153 } 99bbc70741903c Willem de Bruijn 2013-05-20 154 } 99bbc70741903c Willem de Bruijn 2013-05-20 155 write_unlock: 99bbc70741903c Willem de Bruijn 2013-05-20 156 mutex_unlock(&flow_limit_update_mutex); 99bbc70741903c Willem de Bruijn 2013-05-20 157 } else { 5f121b9a83b499 Willem de Bruijn 2013-06-13 158 char kbuf[128]; 5f121b9a83b499 Willem de Bruijn 2013-06-13 159 99bbc70741903c Willem de Bruijn 2013-05-20 160 if (*ppos || !*lenp) { 99bbc70741903c Willem de Bruijn 2013-05-20 161 *lenp = 0; 99bbc70741903c Willem de Bruijn 2013-05-20 162 goto done; 99bbc70741903c Willem de Bruijn 2013-05-20 163 } 99bbc70741903c Willem de Bruijn 2013-05-20 164 99bbc70741903c Willem de Bruijn 2013-05-20 165 cpumask_clear(mask); 99bbc70741903c Willem de Bruijn 2013-05-20 166 rcu_read_lock(); 99bbc70741903c Willem de Bruijn 2013-05-20 167 for_each_possible_cpu(i) { 99bbc70741903c Willem de Bruijn 2013-05-20 168 sd = &per_cpu(softnet_data, i); 99bbc70741903c Willem de Bruijn 2013-05-20 169 if (rcu_dereference(sd->flow_limit)) 99bbc70741903c Willem de Bruijn 2013-05-20 170 cpumask_set_cpu(i, mask); 99bbc70741903c Willem de Bruijn 2013-05-20 171 } 99bbc70741903c Willem de Bruijn 2013-05-20 172 rcu_read_unlock(); 99bbc70741903c Willem de Bruijn 2013-05-20 173 5f121b9a83b499 Willem de Bruijn 2013-06-13 174 len = min(sizeof(kbuf) - 1, *lenp); f09068276c5cbe Tejun Heo 2015-02-13 175 len = scnprintf(kbuf, len, "%*pb", cpumask_pr_args(mask)); 5f121b9a83b499 Willem de Bruijn 2013-06-13 176 if (!len) { 5f121b9a83b499 Willem de Bruijn 2013-06-13 177 *lenp = 0; 5f121b9a83b499 Willem de Bruijn 2013-06-13 178 goto done; 5f121b9a83b499 Willem de Bruijn 2013-06-13 179 } 5f121b9a83b499 Willem de Bruijn 2013-06-13 180 if (len < *lenp) 5f121b9a83b499 Willem de Bruijn 2013-06-13 181 kbuf[len++] = '\n'; 32927393dc1ccd Christoph Hellwig 2020-04-24 182 memcpy(buffer, kbuf, len); 5f121b9a83b499 Willem de Bruijn 2013-06-13 183 *lenp = len; 5f121b9a83b499 Willem de Bruijn 2013-06-13 184 *ppos += len; 99bbc70741903c Willem de Bruijn 2013-05-20 185 } 99bbc70741903c Willem de Bruijn 2013-05-20 186 99bbc70741903c Willem de Bruijn 2013-05-20 187 done: 99bbc70741903c Willem de Bruijn 2013-05-20 188 free_cpumask_var(mask); 99bbc70741903c Willem de Bruijn 2013-05-20 189 return ret; 99bbc70741903c Willem de Bruijn 2013-05-20 190 } 99bbc70741903c Willem de Bruijn 2013-05-20 191 :::::: The code at line 129 was first introduced by commit :::::: 99bbc70741903c063b3ccad90a3e06fc55df9245 rps: selective flow shedding during softnet overflow :::::: TO: Willem de Bruijn <will...@google.com> :::::: CC: David S. Miller <da...@davemloft.net> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org