Lines Matching refs:clcsk
249 struct sock *clcsk = smc->clcsock->sk;
251 write_lock_bh(&clcsk->sk_callback_lock);
252 clcsk->sk_user_data = NULL;
254 smc_clcsock_restore_cb(&clcsk->sk_state_change, &smc->clcsk_state_change);
255 smc_clcsock_restore_cb(&clcsk->sk_data_ready, &smc->clcsk_data_ready);
256 smc_clcsock_restore_cb(&clcsk->sk_write_space, &smc->clcsk_write_space);
257 smc_clcsock_restore_cb(&clcsk->sk_error_report, &smc->clcsk_error_report);
259 write_unlock_bh(&clcsk->sk_callback_lock);
823 static void smc_fback_forward_wakeup(struct smc_sock *smc, struct sock *clcsk,
832 wq = rcu_dereference(clcsk->sk_wq);
835 add_wait_queue(sk_sleep(clcsk), &mark.wait_entry);
836 clcsock_callback(clcsk);
837 remove_wait_queue(sk_sleep(clcsk), &mark.wait_entry);
845 static void smc_fback_state_change(struct sock *clcsk)
849 read_lock_bh(&clcsk->sk_callback_lock);
850 smc = smc_clcsock_user_data(clcsk);
852 smc_fback_forward_wakeup(smc, clcsk,
854 read_unlock_bh(&clcsk->sk_callback_lock);
857 static void smc_fback_data_ready(struct sock *clcsk)
861 read_lock_bh(&clcsk->sk_callback_lock);
862 smc = smc_clcsock_user_data(clcsk);
864 smc_fback_forward_wakeup(smc, clcsk,
866 read_unlock_bh(&clcsk->sk_callback_lock);
869 static void smc_fback_write_space(struct sock *clcsk)
873 read_lock_bh(&clcsk->sk_callback_lock);
874 smc = smc_clcsock_user_data(clcsk);
876 smc_fback_forward_wakeup(smc, clcsk,
878 read_unlock_bh(&clcsk->sk_callback_lock);
881 static void smc_fback_error_report(struct sock *clcsk)
885 read_lock_bh(&clcsk->sk_callback_lock);
886 smc = smc_clcsock_user_data(clcsk);
888 smc_fback_forward_wakeup(smc, clcsk,
890 read_unlock_bh(&clcsk->sk_callback_lock);
895 struct sock *clcsk = smc->clcsock->sk;
897 write_lock_bh(&clcsk->sk_callback_lock);
898 clcsk->sk_user_data = (void *)((uintptr_t)smc | SK_USER_DATA_NOCOPY);
900 smc_clcsock_replace_cb(&clcsk->sk_state_change, smc_fback_state_change,
902 smc_clcsock_replace_cb(&clcsk->sk_data_ready, smc_fback_data_ready,
904 smc_clcsock_replace_cb(&clcsk->sk_write_space, smc_fback_write_space,
906 smc_clcsock_replace_cb(&clcsk->sk_error_report, smc_fback_error_report,
909 write_unlock_bh(&clcsk->sk_callback_lock);
2705 struct sock *clcsk = smc_sk(nsk)->clcsock->sk;
2707 lock_sock(clcsk);
2708 if (skb_queue_empty(&clcsk->sk_receive_queue))
2709 sk_wait_data(clcsk, &timeo, NULL);
2710 release_sock(clcsk);