CC: [email protected] CC: [email protected] TO: Ursula Braun <[email protected]> CC: Guvenc Gulce <[email protected]> CC: Karsten Graul <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master head: 5a6bd84f815485800699f55c78f690b2ed35f0c5 commit: a60a2b1e0af1a7517ba41689b39e9df90ef09041 [903/970] net/smc: reduce active tcp_listen workers :::::: branch date: 9 hours ago :::::: commit date: 2 days ago config: i386-randconfig-m021-20200911 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: net/smc/smc_close.c:214 smc_close_active() warn: variable dereferenced before check 'smc->clcsock' (see line 211) net/smc/smc_close.c:214 smc_close_active() warn: variable dereferenced before check 'smc->clcsock->sk' (see line 211) # https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/commit/?id=a60a2b1e0af1a7517ba41689b39e9df90ef09041 git remote add net-next https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git git fetch --no-tags net-next master git checkout a60a2b1e0af1a7517ba41689b39e9df90ef09041 vim +214 net/smc/smc_close.c a98bf8c0bce7bd3 Ursula Braun 2017-04-10 188 b38d732477e4211 Ursula Braun 2017-01-09 189 int smc_close_active(struct smc_sock *smc) b38d732477e4211 Ursula Braun 2017-01-09 190 { b38d732477e4211 Ursula Braun 2017-01-09 191 struct smc_cdc_conn_state_flags *txflags = b38d732477e4211 Ursula Braun 2017-01-09 192 &smc->conn.local_tx_ctrl.conn_state_flags; b38d732477e4211 Ursula Braun 2017-01-09 193 struct smc_connection *conn = &smc->conn; b38d732477e4211 Ursula Braun 2017-01-09 194 struct sock *sk = &smc->sk; b38d732477e4211 Ursula Braun 2017-01-09 195 int old_state; 8c96feeeb39ba0b Ursula Braun 2017-09-21 196 long timeout; b38d732477e4211 Ursula Braun 2017-01-09 197 int rc = 0; b38d732477e4211 Ursula Braun 2017-01-09 198 8c96feeeb39ba0b Ursula Braun 2017-09-21 199 timeout = current->flags & PF_EXITING ? 8c96feeeb39ba0b Ursula Braun 2017-09-21 200 0 : sock_flag(sk, SOCK_LINGER) ? 8c96feeeb39ba0b Ursula Braun 2017-09-21 201 sk->sk_lingertime : SMC_MAX_STREAM_WAIT_TIMEOUT; b38d732477e4211 Ursula Braun 2017-01-09 202 b38d732477e4211 Ursula Braun 2017-01-09 203 old_state = sk->sk_state; bbb96bf2366e502 Ursula Braun 2018-01-24 204 again: bbb96bf2366e502 Ursula Braun 2018-01-24 205 switch (sk->sk_state) { b38d732477e4211 Ursula Braun 2017-01-09 206 case SMC_INIT: b38d732477e4211 Ursula Braun 2017-01-09 207 sk->sk_state = SMC_CLOSED; b38d732477e4211 Ursula Braun 2017-01-09 208 break; b38d732477e4211 Ursula Braun 2017-01-09 209 case SMC_LISTEN: b38d732477e4211 Ursula Braun 2017-01-09 210 sk->sk_state = SMC_CLOSED; a60a2b1e0af1a75 Ursula Braun 2020-09-10 @211 smc->clcsock->sk->sk_data_ready = smc->clcsk_data_ready; a60a2b1e0af1a75 Ursula Braun 2020-09-10 212 smc->clcsock->sk->sk_user_data = NULL; b38d732477e4211 Ursula Braun 2017-01-09 213 sk->sk_state_change(sk); /* wake up accept */ a60a2b1e0af1a75 Ursula Braun 2020-09-10 @214 if (smc->clcsock && smc->clcsock->sk) b38d732477e4211 Ursula Braun 2017-01-09 215 rc = kernel_sock_shutdown(smc->clcsock, SHUT_RDWR); b38d732477e4211 Ursula Braun 2017-01-09 216 smc_close_cleanup_listen(sk); 3d502067599f0db Ursula Braun 2018-03-13 217 release_sock(sk); 3d502067599f0db Ursula Braun 2018-03-13 218 flush_work(&smc->tcp_listen_work); 3d502067599f0db Ursula Braun 2018-03-13 219 lock_sock(sk); b38d732477e4211 Ursula Braun 2017-01-09 220 break; b38d732477e4211 Ursula Braun 2017-01-09 221 case SMC_ACTIVE: b38d732477e4211 Ursula Braun 2017-01-09 222 smc_close_stream_wait(smc, timeout); b38d732477e4211 Ursula Braun 2017-01-09 223 release_sock(sk); 18e537cd58e8d69 Ursula Braun 2017-09-21 224 cancel_delayed_work_sync(&conn->tx_work); b38d732477e4211 Ursula Braun 2017-01-09 225 lock_sock(sk); b38d732477e4211 Ursula Braun 2017-01-09 226 if (sk->sk_state == SMC_ACTIVE) { b38d732477e4211 Ursula Braun 2017-01-09 227 /* send close request */ b38d732477e4211 Ursula Braun 2017-01-09 228 rc = smc_close_final(conn); b38d732477e4211 Ursula Braun 2017-01-09 229 sk->sk_state = SMC_PEERCLOSEWAIT1; b38d732477e4211 Ursula Braun 2017-01-09 230 } else { b38d732477e4211 Ursula Braun 2017-01-09 231 /* peer event has changed the state */ b38d732477e4211 Ursula Braun 2017-01-09 232 goto again; b38d732477e4211 Ursula Braun 2017-01-09 233 } b38d732477e4211 Ursula Braun 2017-01-09 234 break; b38d732477e4211 Ursula Braun 2017-01-09 235 case SMC_APPFINCLOSEWAIT: b38d732477e4211 Ursula Braun 2017-01-09 236 /* socket already shutdown wr or both (active close) */ b38d732477e4211 Ursula Braun 2017-01-09 237 if (txflags->peer_done_writing && a98bf8c0bce7bd3 Ursula Braun 2017-04-10 238 !smc_close_sent_any_close(conn)) { b38d732477e4211 Ursula Braun 2017-01-09 239 /* just shutdown wr done, send close request */ b38d732477e4211 Ursula Braun 2017-01-09 240 rc = smc_close_final(conn); b38d732477e4211 Ursula Braun 2017-01-09 241 } b38d732477e4211 Ursula Braun 2017-01-09 242 sk->sk_state = SMC_CLOSED; b38d732477e4211 Ursula Braun 2017-01-09 243 break; b38d732477e4211 Ursula Braun 2017-01-09 244 case SMC_APPCLOSEWAIT1: b38d732477e4211 Ursula Braun 2017-01-09 245 case SMC_APPCLOSEWAIT2: b38d732477e4211 Ursula Braun 2017-01-09 246 if (!smc_cdc_rxed_any_close(conn)) b38d732477e4211 Ursula Braun 2017-01-09 247 smc_close_stream_wait(smc, timeout); b38d732477e4211 Ursula Braun 2017-01-09 248 release_sock(sk); 18e537cd58e8d69 Ursula Braun 2017-09-21 249 cancel_delayed_work_sync(&conn->tx_work); b38d732477e4211 Ursula Braun 2017-01-09 250 lock_sock(sk); bbb96bf2366e502 Ursula Braun 2018-01-24 251 if (sk->sk_state != SMC_APPCLOSEWAIT1 && bbb96bf2366e502 Ursula Braun 2018-01-24 252 sk->sk_state != SMC_APPCLOSEWAIT2) bbb96bf2366e502 Ursula Braun 2018-01-24 253 goto again; b38d732477e4211 Ursula Braun 2017-01-09 254 /* confirm close from peer */ b38d732477e4211 Ursula Braun 2017-01-09 255 rc = smc_close_final(conn); 51f1de79ad8ed35 Ursula Braun 2018-01-26 256 if (smc_cdc_rxed_any_close(conn)) { b38d732477e4211 Ursula Braun 2017-01-09 257 /* peer has closed the socket already */ b38d732477e4211 Ursula Braun 2017-01-09 258 sk->sk_state = SMC_CLOSED; 51f1de79ad8ed35 Ursula Braun 2018-01-26 259 sock_put(sk); /* postponed passive closing */ 51f1de79ad8ed35 Ursula Braun 2018-01-26 260 } else { b38d732477e4211 Ursula Braun 2017-01-09 261 /* peer has just issued a shutdown write */ b38d732477e4211 Ursula Braun 2017-01-09 262 sk->sk_state = SMC_PEERFINCLOSEWAIT; 51f1de79ad8ed35 Ursula Braun 2018-01-26 263 } b38d732477e4211 Ursula Braun 2017-01-09 264 break; b38d732477e4211 Ursula Braun 2017-01-09 265 case SMC_PEERCLOSEWAIT1: b38d732477e4211 Ursula Braun 2017-01-09 266 case SMC_PEERCLOSEWAIT2: a98bf8c0bce7bd3 Ursula Braun 2017-04-10 267 if (txflags->peer_done_writing && a98bf8c0bce7bd3 Ursula Braun 2017-04-10 268 !smc_close_sent_any_close(conn)) { a98bf8c0bce7bd3 Ursula Braun 2017-04-10 269 /* just shutdown wr done, send close request */ a98bf8c0bce7bd3 Ursula Braun 2017-04-10 270 rc = smc_close_final(conn); a98bf8c0bce7bd3 Ursula Braun 2017-04-10 271 } a98bf8c0bce7bd3 Ursula Braun 2017-04-10 272 /* peer sending PeerConnectionClosed will cause transition */ a98bf8c0bce7bd3 Ursula Braun 2017-04-10 273 break; b38d732477e4211 Ursula Braun 2017-01-09 274 case SMC_PEERFINCLOSEWAIT: b38d732477e4211 Ursula Braun 2017-01-09 275 /* peer sending PeerConnectionClosed will cause transition */ b38d732477e4211 Ursula Braun 2017-01-09 276 break; b38d732477e4211 Ursula Braun 2017-01-09 277 case SMC_PROCESSABORT: d18963cf0365666 Ursula Braun 2019-10-09 278 rc = smc_close_abort(conn); b38d732477e4211 Ursula Braun 2017-01-09 279 sk->sk_state = SMC_CLOSED; b38d732477e4211 Ursula Braun 2017-01-09 280 break; b38d732477e4211 Ursula Braun 2017-01-09 281 case SMC_PEERABORTWAIT: d18963cf0365666 Ursula Braun 2019-10-09 282 sk->sk_state = SMC_CLOSED; d18963cf0365666 Ursula Braun 2019-10-09 283 break; b38d732477e4211 Ursula Braun 2017-01-09 284 case SMC_CLOSED: b38d732477e4211 Ursula Braun 2017-01-09 285 /* nothing to do, add tracing in future patch */ b38d732477e4211 Ursula Braun 2017-01-09 286 break; b38d732477e4211 Ursula Braun 2017-01-09 287 } b38d732477e4211 Ursula Braun 2017-01-09 288 b38d732477e4211 Ursula Braun 2017-01-09 289 if (old_state != sk->sk_state) 3163c5071f25e36 Ursula Braun 2018-01-24 290 sk->sk_state_change(sk); b38d732477e4211 Ursula Braun 2017-01-09 291 return rc; b38d732477e4211 Ursula Braun 2017-01-09 292 } b38d732477e4211 Ursula Braun 2017-01-09 293 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
