Hi Jiyong, Thank you for the patch! Yet something to improve: [auto build test ERROR on 3bf7edc84a9eb4007dd9a0cb8878a7e1d5ec6a3b] url: https://github.com/0day-ci/linux/commits/Jiyong-Park/vsock-cycle-only-on-its-own-socket/20220310-205638 base: 3bf7edc84a9eb4007dd9a0cb8878a7e1d5ec6a3b config: x86_64-rhel-8.3 (https://download.01.org/0day-ci/archive/20220311/202203111023.SPYFGn7W-lkp@xxxxxxxxx/config) compiler: gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/6219060e1d706d7055fb0829b3bf23c5ae84790e git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jiyong-Park/vsock-cycle-only-on-its-own-socket/20220310-205638 git checkout 6219060e1d706d7055fb0829b3bf23c5ae84790e # save the config file to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash net/vmw_vsock/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): net/vmw_vsock/vmci_transport.c: In function 'vmci_transport_handle_detach': >> net/vmw_vsock/vmci_transport.c:808:25: error: 'vmci_transport' undeclared (first use in this function) 808 | if (vsk->transport != &vmci_transport) | ^~~~~~~~~~~~~~ net/vmw_vsock/vmci_transport.c:808:25: note: each undeclared identifier is reported only once for each function it appears in vim +/vmci_transport +808 net/vmw_vsock/vmci_transport.c 800 801 static void vmci_transport_handle_detach(struct sock *sk) 802 { 803 struct vsock_sock *vsk; 804 805 vsk = vsock_sk(sk); 806 807 /* Only handle our own sockets */ > 808 if (vsk->transport != &vmci_transport) 809 return; 810 811 if (!vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle)) { 812 sock_set_flag(sk, SOCK_DONE); 813 814 /* On a detach the peer will not be sending or receiving 815 * anymore. 816 */ 817 vsk->peer_shutdown = SHUTDOWN_MASK; 818 819 /* We should not be sending anymore since the peer won't be 820 * there to receive, but we can still receive if there is data 821 * left in our consume queue. If the local endpoint is a host, 822 * we can't call vsock_stream_has_data, since that may block, 823 * but a host endpoint can't read data once the VM has 824 * detached, so there is no available data in that case. 825 */ 826 if (vsk->local_addr.svm_cid == VMADDR_CID_HOST || 827 vsock_stream_has_data(vsk) <= 0) { 828 if (sk->sk_state == TCP_SYN_SENT) { 829 /* The peer may detach from a queue pair while 830 * we are still in the connecting state, i.e., 831 * if the peer VM is killed after attaching to 832 * a queue pair, but before we complete the 833 * handshake. In that case, we treat the detach 834 * event like a reset. 835 */ 836 837 sk->sk_state = TCP_CLOSE; 838 sk->sk_err = ECONNRESET; 839 sk_error_report(sk); 840 return; 841 } 842 sk->sk_state = TCP_CLOSE; 843 } 844 sk->sk_state_change(sk); 845 } 846 } 847 --- 0-DAY CI Kernel Test Service https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx