smc_sock
static void smc_conn_abort(struct smc_sock *smc, int local_first)
static int smc_find_rdma_device(struct smc_sock *smc, struct smc_init_info *ini)
static int smc_find_ism_device(struct smc_sock *smc, struct smc_init_info *ini)
static int smc_find_ism_v2_device_clnt(struct smc_sock *smc,
static int smc_find_proposal_devices(struct smc_sock *smc,
struct smc_sock *smc = smc_sk(sk);
static int smc_connect_clc(struct smc_sock *smc,
static int smc_connect_rdma_v2_prepare(struct smc_sock *smc,
static int smc_connect_rdma(struct smc_sock *smc,
struct smc_sock *smc;
static int smc_connect_ism(struct smc_sock *smc,
static int __smc_connect(struct smc_sock *smc)
struct smc_sock *smc = container_of(work, struct smc_sock,
struct smc_sock *smc;
static int smc_clcsock_accept(struct smc_sock *lsmc, struct smc_sock **new_smc)
const struct smc_sock *smc;
struct smc_sock *par = smc_sk(parent);
struct smc_sock *par = smc_sk(sk)->listen_smc;
struct smc_sock *isk, *n;
struct smc_sock *smc = smc_sk(sk);
static int smcr_serv_conf_first_link(struct smc_sock *smc)
static void smc_listen_out(struct smc_sock *new_smc)
struct smc_sock *lsmc = new_smc->listen_smc;
static void smc_listen_out_connected(struct smc_sock *new_smc)
static void smc_listen_out_err(struct smc_sock *new_smc)
static void smc_listen_decline(struct smc_sock *new_smc, int reason_code,
static int smc_listen_v2_check(struct smc_sock *new_smc,
static int smc_listen_prfx_check(struct smc_sock *new_smc,
static int smc_listen_rdma_init(struct smc_sock *new_smc,
static int smc_listen_ism_init(struct smc_sock *new_smc,
static void smc_find_ism_v2_device_serv(struct smc_sock *new_smc,
static void smc_find_ism_v1_device_serv(struct smc_sock *new_smc,
struct smc_sock *smc = smc_sk(sk);
static int smc_listen_rdma_reg(struct smc_sock *new_smc, bool local_first)
static void smc_find_rdma_v2_device_serv(struct smc_sock *new_smc,
static int smc_find_rdma_v1_device_serv(struct smc_sock *new_smc,
static int smc_listen_find_device(struct smc_sock *new_smc,
static int smc_listen_rdma_finish(struct smc_sock *new_smc,
.obj_size = sizeof(struct smc_sock),
struct smc_sock *new_smc = container_of(work, struct smc_sock,
.obj_size = sizeof(struct smc_sock),
struct smc_sock *lsmc = container_of(work, struct smc_sock,
struct smc_sock *new_smc;
static void smc_fback_restore_callbacks(struct smc_sock *smc)
struct smc_sock *lsmc;
struct smc_sock *smc;
struct smc_sock *lsmc;
static void smc_restore_fallback_changes(struct smc_sock *smc)
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
static int __smc_release(struct smc_sock *smc)
struct smc_sock *isk = smc_sk(parent);
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc = smc_sk(sk);
struct smc_sock *smc = smc_sk(sk);
struct smc_sock *smc;
static void smc_copy_sock_settings_to_clc(struct smc_sock *smc)
static void smc_copy_sock_settings_to_smc(struct smc_sock *smc)
static int smcr_clnt_conf_first_link(struct smc_sock *smc)
static void smc_conn_save_peer_info_fce(struct smc_sock *smc,
static void smcr_conn_save_peer_info(struct smc_sock *smc,
static void smcd_conn_save_peer_info(struct smc_sock *smc,
static void smc_conn_save_peer_info(struct smc_sock *smc,
static void smc_stat_inc_fback_rsn_cnt(struct smc_sock *smc,
static void smc_stat_fallback(struct smc_sock *smc)
static void smc_fback_wakeup_waitqueue(struct smc_sock *smc, void *key)
static void smc_fback_forward_wakeup(struct smc_sock *smc, struct sock *clcsk,
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
struct smc_sock *smc;
static void smc_fback_replace_callbacks(struct smc_sock *smc)
static int smc_switch_to_fallback(struct smc_sock *smc, int reason_code)
static int smc_connect_fallback(struct smc_sock *smc, int reason_code)
static int smc_connect_decline_fallback(struct smc_sock *smc, int reason_code,
struct smc_sock *listen_smc; /* listen parent */
#define smc_sk(ptr) container_of_const(ptr, struct smc_sock, sk)
static inline void smc_init_saved_callbacks(struct smc_sock *smc)
static inline struct smc_sock *smc_clcsock_user_data(const struct sock *clcsk)
return (struct smc_sock *)
static inline struct smc_sock *smc_clcsock_user_data_rcu(const struct sock *clcsk)
return (struct smc_sock *)rcu_dereference_sk_user_data(clcsk);
static inline bool using_ipsec(struct smc_sock *smc)
static inline bool using_ipsec(struct smc_sock *smc)
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
static void smc_cdc_handle_urg_data_arrival(struct smc_sock *smc,
static void smc_cdc_msg_validate(struct smc_sock *smc, struct smc_cdc_msg *cdc,
struct smc_sock *smc;
static void smc_cdc_msg_recv_action(struct smc_sock *smc,
smc = container_of(conn, struct smc_sock, conn);
static void smc_cdc_msg_recv(struct smc_sock *smc, struct smc_cdc_msg *cdc)
struct smc_sock *smc;
smc = container_of(conn, struct smc_sock, conn);
struct smc_sock *smc;
smc = container_of(conn, struct smc_sock, conn);
static int smc_clc_send_confirm_accept(struct smc_sock *smc,
int smc_clc_send_confirm(struct smc_sock *smc, bool clnt_first_contact,
int smc_clc_send_accept(struct smc_sock *new_smc, bool srv_first_contact,
int smc_clc_srv_v2x_features_validate(struct smc_sock *smc,
int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
int smc_clc_send_decline(struct smc_sock *smc, u32 peer_diag_info, u8 version)
int smc_clc_send_proposal(struct smc_sock *smc, struct smc_init_info *ini)
int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
int smc_clc_send_decline(struct smc_sock *smc, u32 peer_diag_info, u8 version);
int smc_clc_send_proposal(struct smc_sock *smc, struct smc_init_info *ini);
int smc_clc_send_confirm(struct smc_sock *smc, bool clnt_first_contact,
int smc_clc_send_accept(struct smc_sock *smc, bool srv_first_contact,
int smc_clc_srv_v2x_features_validate(struct smc_sock *smc,
static void smc_close_cancel_work(struct smc_sock *smc)
void smc_close_active_abort(struct smc_sock *smc)
int smc_close_active(struct smc_sock *smc)
void smc_clcsock_release(struct smc_sock *smc)
static void smc_close_passive_abort_received(struct smc_sock *smc)
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
int smc_close_shutdown_write(struct smc_sock *smc)
static void smc_close_stream_wait(struct smc_sock *smc, long timeout)
void smc_close_init(struct smc_sock *smc)
void smc_close_wake_tx_prepared(struct smc_sock *smc)
void smc_close_wake_tx_prepared(struct smc_sock *smc);
int smc_close_active(struct smc_sock *smc);
int smc_close_shutdown_write(struct smc_sock *smc);
void smc_close_init(struct smc_sock *smc);
void smc_clcsock_release(struct smc_sock *smc);
void smc_close_active_abort(struct smc_sock *smc);
static int smc_switch_cursor(struct smc_sock *smc, struct smc_cdc_tx_pend *pend,
struct smc_sock *smc;
smc = container_of(conn, struct smc_sock, conn);
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
static void smc_sk_wake_ups(struct smc_sock *smc)
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
struct smc_sock *smc;
smc = container_of(conn, struct smc_sock, conn);
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
int smc_conn_create(struct smc_sock *smc, struct smc_init_info *ini)
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
static int __smc_buf_create(struct smc_sock *smc, bool is_smcd, bool is_rmb)
int smc_buf_create(struct smc_sock *smc, bool is_smcd)
int smcd_buf_attach(struct smc_sock *smc)
static int smc_lgr_create(struct smc_sock *smc, struct smc_init_info *ini)
struct smc_sock;
int smc_buf_create(struct smc_sock *smc, bool is_smcd);
int smcd_buf_attach(struct smc_sock *smc);
int smc_conn_create(struct smc_sock *smc, struct smc_init_info *ini);
struct smc_sock *smc = smc_sk(sk);
struct smc_sock *smc = smc_sk(sk);
.obj_size = sizeof(struct smc_sock),
struct smc_sock smc;
void smc_llc_lgr_init(struct smc_link_group *lgr, struct smc_sock *smc)
void smc_llc_lgr_init(struct smc_link_group *lgr, struct smc_sock *smc);
static void smc_rx_update_cons(struct smc_sock *smc, size_t len)
struct smc_sock *smc;
struct smc_sock *smc = priv->smc;
struct smc_sock *smc)
int smc_rx_wait(struct smc_sock *smc, long *timeo, size_t peeked,
static int smc_rx_recv_urg(struct smc_sock *smc, struct msghdr *msg, int len,
static bool smc_rx_recvmsg_data_available(struct smc_sock *smc, size_t peeked)
int smc_rx_recvmsg(struct smc_sock *smc, struct msghdr *msg,
void smc_rx_init(struct smc_sock *smc)
static int smc_rx_update_consumer(struct smc_sock *smc,
void smc_rx_init(struct smc_sock *smc);
int smc_rx_recvmsg(struct smc_sock *smc, struct msghdr *msg,
int smc_rx_wait(struct smc_sock *smc, long *timeo, size_t peeked,
TP_PROTO(const struct smc_sock *smc, int fallback_rsn),
TP_PROTO(const struct smc_sock *smc, size_t len),
TP_PROTO(const struct smc_sock *smc, size_t len),
TP_PROTO(const struct smc_sock *smc, size_t len),
static bool smc_tx_is_corked(struct smc_sock *smc)
static bool smc_should_autocork(struct smc_sock *smc)
static bool smc_tx_should_cork(struct smc_sock *smc, struct msghdr *msg)
int smc_tx_sendmsg(struct smc_sock *smc, struct msghdr *msg, size_t len)
struct smc_sock *smc = smc_sk(sk);
struct smc_sock *smc = container_of(conn, struct smc_sock,
struct smc_sock *smc =
container_of(conn, struct smc_sock, conn);
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
void smc_tx_sndbuf_nonfull(struct smc_sock *smc)
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
void smc_tx_init(struct smc_sock *smc)
static int smc_tx_wait(struct smc_sock *smc, int flags)
void smc_tx_init(struct smc_sock *smc);
int smc_tx_sendmsg(struct smc_sock *smc, struct msghdr *msg, size_t len);
void smc_tx_sndbuf_nonfull(struct smc_sock *smc);
struct smc_sock *listen_smc;