Hi Wythe", Thank you for the patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/0day-ci/linux/commits/D-Wythe/Optimizing-performance-in-short-lived/20220127-200912 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git fbb8295248e1d6f576d444309fcf79356008eac1 config: x86_64-randconfig-s022-20220124 (https://download.01.org/0day-ci/archive/20220128/202201280741.2EsIf9Jy-lkp@xxxxxxxxx/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-dirty # https://github.com/0day-ci/linux/commit/718aff24f3fcc73ecb7bff17fcbe029b799c6624 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review D-Wythe/Optimizing-performance-in-short-lived/20220127-200912 git checkout 718aff24f3fcc73ecb7bff17fcbe029b799c6624 # save the config file to linux build tree mkdir build_dir make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash net/smc/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) >> net/smc/af_smc.c:2202:25: sparse: sparse: incorrect type in assignment (different modifiers) @@ expected struct inet_connection_sock_af_ops *ori_af_ops @@ got struct inet_connection_sock_af_ops const *icsk_af_ops @@ net/smc/af_smc.c:2202:25: sparse: expected struct inet_connection_sock_af_ops *ori_af_ops net/smc/af_smc.c:2202:25: sparse: got struct inet_connection_sock_af_ops const *icsk_af_ops vim +2202 net/smc/af_smc.c 2166 2167 static int smc_listen(struct socket *sock, int backlog) 2168 { 2169 struct sock *sk = sock->sk; 2170 struct smc_sock *smc; 2171 int rc; 2172 2173 smc = smc_sk(sk); 2174 lock_sock(sk); 2175 2176 rc = -EINVAL; 2177 if ((sk->sk_state != SMC_INIT && sk->sk_state != SMC_LISTEN) || 2178 smc->connect_nonblock) 2179 goto out; 2180 2181 rc = 0; 2182 if (sk->sk_state == SMC_LISTEN) { 2183 sk->sk_max_ack_backlog = backlog; 2184 goto out; 2185 } 2186 /* some socket options are handled in core, so we could not apply 2187 * them to the clc socket -- copy smc socket options to clc socket 2188 */ 2189 smc_copy_sock_settings_to_clc(smc); 2190 if (!smc->use_fallback) 2191 tcp_sk(smc->clcsock->sk)->syn_smc = 1; 2192 2193 /* save original sk_data_ready function and establish 2194 * smc-specific sk_data_ready function 2195 */ 2196 smc->clcsk_data_ready = smc->clcsock->sk->sk_data_ready; 2197 smc->clcsock->sk->sk_data_ready = smc_clcsock_data_ready; 2198 smc->clcsock->sk->sk_user_data = 2199 (void *)((uintptr_t)smc | SK_USER_DATA_NOCOPY); 2200 2201 /* save origin ops */ > 2202 smc->ori_af_ops = inet_csk(smc->clcsock->sk)->icsk_af_ops; 2203 2204 smc->af_ops = *smc->ori_af_ops; 2205 smc->af_ops.syn_recv_sock = smc_tcp_syn_recv_sock; 2206 2207 inet_csk(smc->clcsock->sk)->icsk_af_ops = &smc->af_ops; 2208 2209 rc = kernel_listen(smc->clcsock, backlog); 2210 if (rc) { 2211 smc->clcsock->sk->sk_data_ready = smc->clcsk_data_ready; 2212 goto out; 2213 } 2214 sk->sk_max_ack_backlog = backlog; 2215 sk->sk_ack_backlog = 0; 2216 sk->sk_state = SMC_LISTEN; 2217 2218 out: 2219 release_sock(sk); 2220 return rc; 2221 } 2222 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx