Lines Matching defs:smc

21 #include "smc.h"
59 static int smc_rx_update_consumer(struct smc_sock *smc,
62 struct smc_connection *conn = &smc->conn;
63 struct sock *sk = &smc->sk;
100 static void smc_rx_update_cons(struct smc_sock *smc, size_t len)
102 struct smc_connection *conn = &smc->conn;
106 smc_rx_update_consumer(smc, cons, len);
110 struct smc_sock *smc;
118 struct smc_sock *smc = priv->smc;
120 struct sock *sk = &smc->sk;
126 conn = &smc->conn;
128 smc_rx_update_cons(smc, priv->len);
150 struct smc_sock *smc)
152 struct smc_link_group *lgr = smc->conn.lgr;
161 nr_pages = !lgr->is_smcd && smc->conn.rmb_desc->is_vm ?
180 (!lgr->is_smcd && !smc->conn.rmb_desc->is_vm)) {
183 priv[0]->smc = smc;
184 partial[0].offset = src - (char *)smc->conn.rmb_desc->cpu_addr;
187 pages[0] = smc->conn.rmb_desc->pages;
195 priv[i]->smc = smc;
214 sock_hold(&smc->sk);
215 if (!lgr->is_smcd && smc->conn.rmb_desc->is_vm) {
219 get_page(smc->conn.rmb_desc->pages);
221 atomic_add(bytes, &smc->conn.splice_pending);
248 * @smc smc socket
255 int smc_rx_wait(struct smc_sock *smc, long *timeo,
259 struct smc_connection *conn = &smc->conn;
262 struct sock *sk = &smc->sk;
281 static int smc_rx_recv_urg(struct smc_sock *smc, struct msghdr *msg, int len,
284 struct smc_connection *conn = &smc->conn;
286 struct sock *sk = &smc->sk;
294 SMC_STAT_INC(smc, urg_data_cnt);
297 smc->conn.urg_state = SMC_URG_READ;
311 smc_rx_update_consumer(smc, cons, 0);
325 static bool smc_rx_recvmsg_data_available(struct smc_sock *smc)
327 struct smc_connection *conn = &smc->conn;
333 smc_rx_update_cons(smc, 0);
344 int smc_rx_recvmsg(struct smc_sock *smc, struct msghdr *msg,
349 struct smc_connection *conn = &smc->conn;
363 sk = &smc->sk;
367 return smc_rx_recv_urg(smc, msg, len, flags);
373 SMC_STAT_RMB_RX_FULL(smc, !conn->lnk);
376 SMC_STAT_RMB_RX_SIZE_SMALL(smc, !conn->lnk);
387 if (smc_rx_recvmsg_data_available(smc))
394 if (smc_rx_recvmsg_data_available(smc))
429 smc_rx_wait(smc, &timeo, smc_rx_data_available);
443 smc_rx_wait(smc, &timeo, func);
452 sock_flag(&smc->sk, SOCK_URGINLINE) &&
473 smc);
499 if (msg && smc_rx_update_consumer(smc, cons, copylen))
503 trace_smc_rx_recvmsg(smc, copylen);
510 void smc_rx_init(struct smc_sock *smc)
512 smc->sk.sk_data_ready = smc_rx_wake_up;
513 atomic_set(&smc->conn.splice_pending, 0);
514 smc->conn.urg_state = SMC_URG_READ;