Hi, [FYI, it's a private test report for your RFC patch.] [auto build test WARNING on linus/master] [also build test WARNING on v5.5-rc3] [cannot apply to tip/x86/core tip/x86/mm efi/next next-20191220] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/glider-google-com/Add-KernelMemorySanitizer-infrastructure/20191224-024330 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 46cf053efec6a3a5f343fead837777efe8252a46 config: openrisc-simple_smp_defconfig (attached as .config) compiler: or1k-linux-gcc (GCC) 9.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=9.2.0 make.cross ARCH=openrisc If you fix the issue, kindly add following tag Reported-by: kbuild test robot Note: it may well be a FALSE warning. FWIW you are at least aware of it now. http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings All warnings (new ones prefixed by >>): net/core/sysctl_net_core.c: In function 'flow_limit_cpu_sysctl': >> net/core/sysctl_net_core.c:183:6: warning: 'res' may be used uninitialized in this function [-Wmaybe-uninitialized] 183 | if (copy_to_user(buffer, kbuf, len)) { | ^ vim +/res +183 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, 99bbc70741903c Willem de Bruijn 2013-05-20 118 void __user *buffer, size_t *lenp, 99bbc70741903c Willem de Bruijn 2013-05-20 119 loff_t *ppos) 99bbc70741903c Willem de Bruijn 2013-05-20 120 { 99bbc70741903c Willem de Bruijn 2013-05-20 121 struct sd_flow_limit *cur; 99bbc70741903c Willem de Bruijn 2013-05-20 122 struct softnet_data *sd; 99bbc70741903c Willem de Bruijn 2013-05-20 123 cpumask_var_t mask; 99bbc70741903c Willem de Bruijn 2013-05-20 124 int i, len, ret = 0; 99bbc70741903c Willem de Bruijn 2013-05-20 125 99bbc70741903c Willem de Bruijn 2013-05-20 126 if (!alloc_cpumask_var(&mask, GFP_KERNEL)) 99bbc70741903c Willem de Bruijn 2013-05-20 127 return -ENOMEM; 99bbc70741903c Willem de Bruijn 2013-05-20 128 99bbc70741903c Willem de Bruijn 2013-05-20 129 if (write) { 99bbc70741903c Willem de Bruijn 2013-05-20 130 ret = cpumask_parse_user(buffer, *lenp, mask); 99bbc70741903c Willem de Bruijn 2013-05-20 131 if (ret) 99bbc70741903c Willem de Bruijn 2013-05-20 132 goto done; 99bbc70741903c Willem de Bruijn 2013-05-20 133 99bbc70741903c Willem de Bruijn 2013-05-20 134 mutex_lock(&flow_limit_update_mutex); 99bbc70741903c Willem de Bruijn 2013-05-20 135 len = sizeof(*cur) + netdev_flow_limit_table_len; 99bbc70741903c Willem de Bruijn 2013-05-20 136 for_each_possible_cpu(i) { 99bbc70741903c Willem de Bruijn 2013-05-20 137 sd = &per_cpu(softnet_data, i); 99bbc70741903c Willem de Bruijn 2013-05-20 138 cur = rcu_dereference_protected(sd->flow_limit, 99bbc70741903c Willem de Bruijn 2013-05-20 139 lockdep_is_held(&flow_limit_update_mutex)); 99bbc70741903c Willem de Bruijn 2013-05-20 140 if (cur && !cpumask_test_cpu(i, mask)) { 99bbc70741903c Willem de Bruijn 2013-05-20 141 RCU_INIT_POINTER(sd->flow_limit, NULL); 99bbc70741903c Willem de Bruijn 2013-05-20 142 synchronize_rcu(); 99bbc70741903c Willem de Bruijn 2013-05-20 143 kfree(cur); 99bbc70741903c Willem de Bruijn 2013-05-20 144 } else if (!cur && cpumask_test_cpu(i, mask)) { 5b59d467ad9ff9 Eric Dumazet 2013-12-18 145 cur = kzalloc_node(len, GFP_KERNEL, 5b59d467ad9ff9 Eric Dumazet 2013-12-18 146 cpu_to_node(i)); 99bbc70741903c Willem de Bruijn 2013-05-20 147 if (!cur) { 99bbc70741903c Willem de Bruijn 2013-05-20 148 /* not unwinding previous changes */ 99bbc70741903c Willem de Bruijn 2013-05-20 149 ret = -ENOMEM; 99bbc70741903c Willem de Bruijn 2013-05-20 150 goto write_unlock; 99bbc70741903c Willem de Bruijn 2013-05-20 151 } 99bbc70741903c Willem de Bruijn 2013-05-20 152 cur->num_buckets = netdev_flow_limit_table_len; 99bbc70741903c Willem de Bruijn 2013-05-20 153 rcu_assign_pointer(sd->flow_limit, cur); 99bbc70741903c Willem de Bruijn 2013-05-20 154 } 99bbc70741903c Willem de Bruijn 2013-05-20 155 } 99bbc70741903c Willem de Bruijn 2013-05-20 156 write_unlock: 99bbc70741903c Willem de Bruijn 2013-05-20 157 mutex_unlock(&flow_limit_update_mutex); 99bbc70741903c Willem de Bruijn 2013-05-20 158 } else { 5f121b9a83b499 Willem de Bruijn 2013-06-13 159 char kbuf[128]; 5f121b9a83b499 Willem de Bruijn 2013-06-13 160 99bbc70741903c Willem de Bruijn 2013-05-20 161 if (*ppos || !*lenp) { 99bbc70741903c Willem de Bruijn 2013-05-20 162 *lenp = 0; 99bbc70741903c Willem de Bruijn 2013-05-20 163 goto done; 99bbc70741903c Willem de Bruijn 2013-05-20 164 } 99bbc70741903c Willem de Bruijn 2013-05-20 165 99bbc70741903c Willem de Bruijn 2013-05-20 166 cpumask_clear(mask); 99bbc70741903c Willem de Bruijn 2013-05-20 167 rcu_read_lock(); 99bbc70741903c Willem de Bruijn 2013-05-20 168 for_each_possible_cpu(i) { 99bbc70741903c Willem de Bruijn 2013-05-20 169 sd = &per_cpu(softnet_data, i); 99bbc70741903c Willem de Bruijn 2013-05-20 170 if (rcu_dereference(sd->flow_limit)) 99bbc70741903c Willem de Bruijn 2013-05-20 171 cpumask_set_cpu(i, mask); 99bbc70741903c Willem de Bruijn 2013-05-20 172 } 99bbc70741903c Willem de Bruijn 2013-05-20 173 rcu_read_unlock(); 99bbc70741903c Willem de Bruijn 2013-05-20 174 5f121b9a83b499 Willem de Bruijn 2013-06-13 175 len = min(sizeof(kbuf) - 1, *lenp); f09068276c5cbe Tejun Heo 2015-02-13 176 len = scnprintf(kbuf, len, "%*pb", cpumask_pr_args(mask)); 5f121b9a83b499 Willem de Bruijn 2013-06-13 177 if (!len) { 5f121b9a83b499 Willem de Bruijn 2013-06-13 178 *lenp = 0; 5f121b9a83b499 Willem de Bruijn 2013-06-13 179 goto done; 5f121b9a83b499 Willem de Bruijn 2013-06-13 180 } 5f121b9a83b499 Willem de Bruijn 2013-06-13 181 if (len < *lenp) 5f121b9a83b499 Willem de Bruijn 2013-06-13 182 kbuf[len++] = '\n'; 5f121b9a83b499 Willem de Bruijn 2013-06-13 @183 if (copy_to_user(buffer, kbuf, len)) { 5f121b9a83b499 Willem de Bruijn 2013-06-13 184 ret = -EFAULT; 5f121b9a83b499 Willem de Bruijn 2013-06-13 185 goto done; 5f121b9a83b499 Willem de Bruijn 2013-06-13 186 } 5f121b9a83b499 Willem de Bruijn 2013-06-13 187 *lenp = len; 5f121b9a83b499 Willem de Bruijn 2013-06-13 188 *ppos += len; 99bbc70741903c Willem de Bruijn 2013-05-20 189 } 99bbc70741903c Willem de Bruijn 2013-05-20 190 99bbc70741903c Willem de Bruijn 2013-05-20 191 done: 99bbc70741903c Willem de Bruijn 2013-05-20 192 free_cpumask_var(mask); 99bbc70741903c Willem de Bruijn 2013-05-20 193 return ret; 99bbc70741903c Willem de Bruijn 2013-05-20 194 } 99bbc70741903c Willem de Bruijn 2013-05-20 195 :::::: The code@line 183 was first introduced by commit :::::: 5f121b9a83b499a61ed44e5ba619c7de8f7271ad net-rps: fixes for rps flow limit :::::: TO: Willem de Bruijn :::::: CC: David S. Miller --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation