Lines Matching refs:smc
31 struct smc_sock *smc; in smc_cdc_tx_handler() local
34 smc = container_of(conn, struct smc_sock, conn); in smc_cdc_tx_handler()
35 bh_lock_sock(&smc->sk); in smc_cdc_tx_handler()
56 if (sock_owned_by_user(&smc->sk)) in smc_cdc_tx_handler()
66 smc_tx_sndbuf_nonfull(smc); in smc_cdc_tx_handler()
67 bh_unlock_sock(&smc->sk); in smc_cdc_tx_handler()
236 struct smc_sock *smc = container_of(conn, struct smc_sock, conn); in smcd_cdc_msg_send() local
266 smc_tx_sndbuf_nonfull(smc); in smcd_cdc_msg_send()
277 static void smc_cdc_handle_urg_data_arrival(struct smc_sock *smc, in smc_cdc_handle_urg_data_arrival() argument
280 struct smc_connection *conn = &smc->conn; in smc_cdc_handle_urg_data_arrival()
286 if (!sock_flag(&smc->sk, SOCK_URGINLINE)) in smc_cdc_handle_urg_data_arrival()
294 sk_send_sigurg(&smc->sk); in smc_cdc_handle_urg_data_arrival()
297 static void smc_cdc_msg_validate(struct smc_sock *smc, struct smc_cdc_msg *cdc, in smc_cdc_msg_validate() argument
300 struct smc_connection *conn = &smc->conn; in smc_cdc_msg_validate()
313 sock_hold(&smc->sk); /* sock_put in abort_work */ in smc_cdc_msg_validate()
315 sock_put(&smc->sk); in smc_cdc_msg_validate()
319 static void smc_cdc_msg_recv_action(struct smc_sock *smc, in smc_cdc_msg_recv_action() argument
323 struct smc_connection *conn = &smc->conn; in smc_cdc_msg_recv_action()
346 smc_cdc_handle_urg_data_arrival(smc, &diff_prod); in smc_cdc_msg_recv_action()
352 smc->sk.sk_data_ready(&smc->sk); in smc_cdc_msg_recv_action()
355 smc->sk.sk_data_ready(&smc->sk); in smc_cdc_msg_recv_action()
364 if (!sock_owned_by_user(&smc->sk)) in smc_cdc_msg_recv_action()
374 smc->sk.sk_write_space(&smc->sk); in smc_cdc_msg_recv_action()
378 smc->sk.sk_err = ECONNRESET; in smc_cdc_msg_recv_action()
382 smc->sk.sk_shutdown |= RCV_SHUTDOWN; in smc_cdc_msg_recv_action()
383 if (smc->clcsock && smc->clcsock->sk) in smc_cdc_msg_recv_action()
384 smc->clcsock->sk->sk_shutdown |= RCV_SHUTDOWN; in smc_cdc_msg_recv_action()
385 sock_set_flag(&smc->sk, SOCK_DONE); in smc_cdc_msg_recv_action()
386 sock_hold(&smc->sk); /* sock_put in close_work */ in smc_cdc_msg_recv_action()
388 sock_put(&smc->sk); in smc_cdc_msg_recv_action()
393 static void smc_cdc_msg_recv(struct smc_sock *smc, struct smc_cdc_msg *cdc) in smc_cdc_msg_recv() argument
395 sock_hold(&smc->sk); in smc_cdc_msg_recv()
396 bh_lock_sock(&smc->sk); in smc_cdc_msg_recv()
397 smc_cdc_msg_recv_action(smc, cdc); in smc_cdc_msg_recv()
398 bh_unlock_sock(&smc->sk); in smc_cdc_msg_recv()
399 sock_put(&smc->sk); /* no free sk in softirq-context */ in smc_cdc_msg_recv()
413 struct smc_sock *smc; in smcd_cdc_rx_tsklet() local
421 smc = container_of(conn, struct smc_sock, conn); in smcd_cdc_rx_tsklet()
422 smc_cdc_msg_recv(smc, (struct smc_cdc_msg *)&cdc); in smcd_cdc_rx_tsklet()
441 struct smc_sock *smc; in smc_cdc_rx_handler() local
455 smc = container_of(conn, struct smc_sock, conn); in smc_cdc_rx_handler()
458 smc_cdc_msg_validate(smc, cdc, link); in smc_cdc_rx_handler()
466 smc_cdc_msg_recv(smc, cdc); in smc_cdc_rx_handler()