/kernel/linux/linux-5.10/net/smc/ |
H A D | smc_core.c | 47 static void smc_buf_free(struct smc_link_group *lgr, bool is_rmb, 49 static void __smc_lgr_terminate(struct smc_link_group *lgr, bool soft); 54 static inline struct list_head *smc_lgr_list_head(struct smc_link_group *lgr, in smc_lgr_list_head() argument 57 if (lgr->is_smcd) { in smc_lgr_list_head() 58 *lgr_lock = &lgr->smcd->lgr_lock; in smc_lgr_list_head() 59 return &lgr->smcd->lgr_list; in smc_lgr_list_head() 66 static void smc_lgr_schedule_free_work(struct smc_link_group *lgr) in smc_lgr_schedule_free_work() argument 72 if (!lgr->freeing) { in smc_lgr_schedule_free_work() 73 mod_delayed_work(system_wq, &lgr->free_work, in smc_lgr_schedule_free_work() 74 (!lgr in smc_lgr_schedule_free_work() 180 struct smc_link_group *lgr = conn->lgr; __smc_lgr_unregister_conn() local 192 struct smc_link_group *lgr = conn->lgr; smc_lgr_unregister_conn() local 206 struct smc_link_group *lgr = conn->lgr; smc_lgr_cleanup_early() local 222 smcr_lgr_link_deactivate_all(struct smc_link_group *lgr) smcr_lgr_link_deactivate_all() argument 240 struct smc_link_group *lgr = container_of(to_delayed_work(work), smc_lgr_free_work() local 276 struct smc_link_group *lgr = container_of(work, struct smc_link_group, smc_lgr_terminate_work() local 283 smcr_next_link_id(struct smc_link_group *lgr) smcr_next_link_id() argument 303 smcr_link_init(struct smc_link_group *lgr, struct smc_link *lnk, u8 link_idx, struct smc_init_info *ini) smcr_link_init() argument 369 struct smc_link_group *lgr; smc_lgr_create() local 529 smc_switch_conns(struct smc_link_group *lgr, struct smc_link *from_lnk, bool is_dev_err) smc_switch_conns() argument 607 smcr_buf_unuse(struct smc_buf_desc *rmb_desc, struct smc_link_group *lgr) smcr_buf_unuse() argument 637 smc_buf_unuse(struct smc_connection *conn, struct smc_link_group *lgr) smc_buf_unuse() argument 651 struct smc_link_group *lgr = conn->lgr; smc_conn_free() local 698 struct smc_link_group *lgr = lnk->lgr; smcr_buf_unmap_lgr() local 717 struct smc_link_group *lgr = lnk->lgr; smcr_rtoken_clear_link() local 750 smcr_buf_free(struct smc_link_group *lgr, bool is_rmb, struct smc_buf_desc *buf_desc) smcr_buf_free() argument 763 smcd_buf_free(struct smc_link_group *lgr, bool is_dmb, struct smc_buf_desc *buf_desc) smcd_buf_free() argument 776 smc_buf_free(struct smc_link_group *lgr, bool is_rmb, struct smc_buf_desc *buf_desc) smc_buf_free() argument 785 __smc_lgr_free_bufs(struct smc_link_group *lgr, bool is_rmb) __smc_lgr_free_bufs() argument 804 smc_lgr_free_bufs(struct smc_link_group *lgr) smc_lgr_free_bufs() argument 813 smc_lgr_free(struct smc_link_group *lgr) smc_lgr_free() argument 841 smcd_unregister_all_dmbs(struct smc_link_group *lgr) smcd_unregister_all_dmbs() argument 887 smc_lgr_cleanup(struct smc_link_group *lgr) smc_lgr_cleanup() argument 906 __smc_lgr_terminate(struct smc_link_group *lgr, bool soft) __smc_lgr_terminate() argument 939 smc_lgr_terminate_sched(struct smc_link_group *lgr) smc_lgr_terminate_sched() argument 958 struct smc_link_group *lgr, *l; smc_smcd_terminate() local 984 struct smc_link_group *lgr, *lg; smc_smcd_terminate_all() local 1008 struct smc_link_group *lgr, *lg; smc_smcr_terminate_all() local 1044 smcr_lgr_set_type(struct smc_link_group *lgr, enum smc_lgr_type new_type) smcr_lgr_set_type() argument 1079 smcr_lgr_set_type_asym(struct smc_link_group *lgr, enum smc_lgr_type new_type, int asym_lnk_idx) smcr_lgr_set_type_asym() argument 1102 struct smc_link_group *lgr, *n; smcr_port_add() local 1127 struct smc_link_group *lgr = lnk->lgr; smcr_link_down() local 1181 struct smc_link_group *lgr, *n; smcr_port_err() local 1204 struct smc_link_group *lgr = link->lgr; smc_link_down_work() local 1262 smcr_lgr_match(struct smc_link_group *lgr, struct smc_clc_msg_local *lcl, enum smc_lgr_role role, u32 clcqpn) smcr_lgr_match() argument 1283 smcd_lgr_match(struct smc_link_group *lgr, struct smcd_dev *smcismdev, u64 peer_gid) smcd_lgr_match() argument 1294 struct smc_link_group *lgr; smc_conn_create() local 1519 struct smc_link_group *lgr = lnk->lgr; smcr_buf_map_lgr() local 1540 struct smc_link_group *lgr = lnk->lgr; smcr_buf_reg_lgr() local 1559 smcr_new_buf_create(struct smc_link_group *lgr, bool is_rmb, int bufsize) smcr_new_buf_create() argument 1586 smcr_buf_map_usable_links(struct smc_link_group *lgr, struct smc_buf_desc *buf_desc, bool is_rmb) smcr_buf_map_usable_links() argument 1613 smcd_new_buf_create(struct smc_link_group *lgr, bool is_dmb, int bufsize) smcd_new_buf_create() argument 1656 struct smc_link_group *lgr = conn->lgr; __smc_buf_create() local 1802 smc_rmb_reserve_rtoken_idx(struct smc_link_group *lgr) smc_rmb_reserve_rtoken_idx() argument 1813 smc_rtoken_find_by_link(struct smc_link_group *lgr, int lnk_idx, u32 rkey) smc_rtoken_find_by_link() argument 1827 smc_rtoken_set(struct smc_link_group *lgr, int link_idx, int link_idx_new, __be32 nw_rkey_known, __be64 nw_vaddr, __be32 nw_rkey) smc_rtoken_set() argument 1840 smc_rtoken_set2(struct smc_link_group *lgr, int rtok_idx, int link_id, __be64 nw_vaddr, __be32 nw_rkey) smc_rtoken_set2() argument 1863 struct smc_link_group *lgr = smc_get_lgr(lnk); smc_rtoken_add() local 1887 struct smc_link_group *lgr = smc_get_lgr(lnk); smc_rtoken_delete() local [all...] |
H A D | smc_llc.c | 189 static void smc_llc_flow_parallel(struct smc_link_group *lgr, u8 flow_type, in smc_llc_flow_parallel() argument 195 flow_type != msg_type && !lgr->delayed_event) { in smc_llc_flow_parallel() 196 lgr->delayed_event = qentry; in smc_llc_flow_parallel() 203 SMC_LGR_ID_SIZE, &lgr->id, in smc_llc_flow_parallel() 205 flow_type, lgr->role); in smc_llc_flow_parallel() 213 struct smc_link_group *lgr = qentry->link->lgr; in smc_llc_flow_start() local 215 spin_lock_bh(&lgr->llc_flow_lock); in smc_llc_flow_start() 218 smc_llc_flow_parallel(lgr, flow->type, qentry); in smc_llc_flow_start() 219 spin_unlock_bh(&lgr in smc_llc_flow_start() 242 smc_llc_flow_initiate(struct smc_link_group *lgr, enum smc_llc_flowtype type) smc_llc_flow_initiate() argument 276 smc_llc_flow_stop(struct smc_link_group *lgr, struct smc_llc_flow *flow) smc_llc_flow_stop() argument 292 smc_llc_wait(struct smc_link_group *lgr, struct smc_link *lnk, int time_out, u8 exp_msg) smc_llc_wait() argument 630 smc_llc_alloc_alt_link(struct smc_link_group *lgr, enum smc_lgr_type lgr_new_t) smc_llc_alloc_alt_link() argument 655 _smc_llc_get_next_rmb(struct smc_link_group *lgr, int *buf_lst) _smc_llc_get_next_rmb() argument 671 smc_llc_get_next_rmb(struct smc_link_group *lgr, int *buf_lst, struct smc_buf_desc *buf_pos) smc_llc_get_next_rmb() argument 685 smc_llc_get_first_rmb(struct smc_link_group *lgr, int *buf_lst) smc_llc_get_first_rmb() argument 698 struct smc_link_group *lgr = link->lgr; smc_llc_add_link_cont() local 751 struct smc_link_group *lgr = link->lgr; smc_llc_cli_rkey_exchange() local 804 struct smc_link_group *lgr = link->lgr; smc_llc_cli_conf_link() local 872 struct smc_link_group *lgr = smc_get_lgr(link); smc_llc_cli_add_link() local 939 struct smc_link_group *lgr = smc_get_lgr(link); smc_llc_cli_add_link_invite() local 975 smc_llc_process_cli_add_link(struct smc_link_group *lgr) smc_llc_process_cli_add_link() argument 989 smc_llc_active_link_count(struct smc_link_group *lgr) smc_llc_active_link_count() argument 1002 smc_llc_find_asym_link(struct smc_link_group *lgr) smc_llc_find_asym_link() argument 1046 smc_llc_delete_asym_link(struct smc_link_group *lgr) smc_llc_delete_asym_link() argument 1084 struct smc_link_group *lgr = link->lgr; smc_llc_srv_rkey_exchange() local 1125 struct smc_link_group *lgr = link->lgr; smc_llc_srv_conf_link() local 1158 struct smc_link_group *lgr = link->lgr; smc_llc_srv_add_link() local 1228 smc_llc_process_srv_add_link(struct smc_link_group *lgr) smc_llc_process_srv_add_link() argument 1258 struct smc_link_group *lgr = container_of(work, struct smc_link_group, smc_llc_add_link_work() local 1290 smc_llc_process_cli_delete_link(struct smc_link_group *lgr) smc_llc_process_cli_delete_link() argument 1348 smc_llc_send_link_delete_all(struct smc_link_group *lgr, bool ord, u32 rsn) smc_llc_send_link_delete_all() argument 1368 smc_llc_process_srv_delete_link(struct smc_link_group *lgr) smc_llc_process_srv_delete_link() argument 1438 struct smc_link_group *lgr = container_of(work, struct smc_link_group, smc_llc_delete_link_work() local 1456 smc_llc_rmt_conf_rkey(struct smc_link_group *lgr) smc_llc_rmt_conf_rkey() argument 1493 smc_llc_rmt_delete_rkey(struct smc_link_group *lgr) smc_llc_rmt_delete_rkey() argument 1519 smc_llc_protocol_violation(struct smc_link_group *lgr, u8 type) smc_llc_protocol_violation() argument 1528 smc_llc_event_flush(struct smc_link_group *lgr) smc_llc_event_flush() argument 1544 struct smc_link_group *lgr = link->lgr; smc_llc_event_handler() local 1634 struct smc_link_group *lgr = container_of(work, struct smc_link_group, smc_llc_event_work() local 1705 struct smc_link_group *lgr = link->lgr; smc_llc_enqueue() local 1777 smc_llc_lgr_init(struct smc_link_group *lgr, struct smc_sock *smc) smc_llc_lgr_init() argument 1794 smc_llc_lgr_clear(struct smc_link_group *lgr) smc_llc_lgr_clear() argument 1849 struct smc_link_group *lgr = send_link->lgr; smc_llc_do_confirm_rkey() local 1868 smc_llc_do_delete_rkey(struct smc_link_group *lgr, struct smc_buf_desc *rmb_desc) smc_llc_do_delete_rkey() argument [all...] |
H A D | smc_llc.h | 53 static inline struct smc_link *smc_llc_usable_link(struct smc_link_group *lgr) in smc_llc_usable_link() argument 58 if (smc_link_usable(&lgr->lnk[i])) in smc_llc_usable_link() 59 return &lgr->lnk[i]; in smc_llc_usable_link() 64 static inline void smc_llc_set_termination_rsn(struct smc_link_group *lgr, in smc_llc_set_termination_rsn() argument 67 if (!lgr->llc_termination_rsn) in smc_llc_set_termination_rsn() 68 lgr->llc_termination_rsn = rsn; in smc_llc_set_termination_rsn() 81 void smc_llc_lgr_init(struct smc_link_group *lgr, struct smc_sock *smc); 82 void smc_llc_lgr_clear(struct smc_link_group *lgr); 88 int smc_llc_do_delete_rkey(struct smc_link_group *lgr, 90 int smc_llc_flow_initiate(struct smc_link_group *lgr, [all...] |
H A D | smc_ism.c | 59 spin_lock_irqsave(&conn->lgr->smcd->lock, flags); in smc_ism_set_conn() 60 conn->lgr->smcd->conn[conn->rmb_desc->sba_idx] = conn; in smc_ism_set_conn() 61 spin_unlock_irqrestore(&conn->lgr->smcd->lock, flags); in smc_ism_set_conn() 72 spin_lock_irqsave(&conn->lgr->smcd->lock, flags); in smc_ism_unset_conn() 73 conn->lgr->smcd->conn[conn->rmb_desc->sba_idx] = NULL; in smc_ism_unset_conn() 74 spin_unlock_irqrestore(&conn->lgr->smcd->lock, flags); in smc_ism_unset_conn() 182 int smc_ism_register_dmb(struct smc_link_group *lgr, int dmb_len, in smc_ism_register_dmb() argument 191 dmb.vlan_id = lgr->vlan_id; in smc_ism_register_dmb() 192 dmb.rgid = lgr->peer_gid; in smc_ism_register_dmb() 193 rc = lgr in smc_ism_register_dmb() 247 smc_ism_signal_shutdown(struct smc_link_group *lgr) smc_ism_signal_shutdown() argument [all...] |
H A D | smc_diag.c | 105 else if (smc->conn.lgr && smc->conn.lgr->is_smcd) in __smc_diag_dump() 158 if (smc->conn.lgr && !smc->conn.lgr->is_smcd && in __smc_diag_dump() 160 !list_empty(&smc->conn.lgr->list)) { in __smc_diag_dump() 162 .role = smc->conn.lgr->role, in __smc_diag_dump() 163 .lnk[0].ibport = smc->conn.lgr->lnk[0].ibport, in __smc_diag_dump() 164 .lnk[0].link_id = smc->conn.lgr->lnk[0].link_id, in __smc_diag_dump() 168 smc->conn.lgr->lnk[0].smcibdev->ibdev->name, in __smc_diag_dump() 169 sizeof(smc->conn.lgr in __smc_diag_dump() [all...] |
H A D | smc_core.h | 125 u8 link_idx; /* index in lgr link array */ 127 struct smc_link_group *lgr; /* parent link group */ member 142 /* tx/rx buffer list element for sndbufs list and rmbs list of a lgr */ 193 enum smc_lgr_type { /* redundancy state of lgr */ 194 SMC_LGR_NONE, /* no active links, lgr to be deleted */ 227 u8 id[SMC_LGR_ID_SIZE]; /* unique lgr id */ 228 struct delayed_work free_work; /* delayed freeing of an lgr */ 229 struct work_struct terminate_work; /* abnormal lgr termination */ 231 u8 sync_err : 1; /* lgr no longer fits to peer */ 232 u8 terminating : 1;/* lgr i 328 smc_lgr_find_conn( u32 token, struct smc_link_group *lgr) smc_lgr_find_conn() argument [all...] |
H A D | smc_cdc.c | 202 if (!conn->lgr || (conn->lgr->is_smcd && conn->lgr->peer_shutdown)) in smc_cdc_get_slot_and_msg_send() 205 if (conn->lgr->is_smcd) { in smc_cdc_get_slot_and_msg_send() 427 struct smc_link_group *lgr; in smc_cdc_rx_handler() local 436 lgr = smc_get_lgr(link); in smc_cdc_rx_handler() 437 read_lock_bh(&lgr->conns_lock); in smc_cdc_rx_handler() 438 conn = smc_lgr_find_conn(ntohl(cdc->token), lgr); in smc_cdc_rx_handler() 439 read_unlock_bh(&lgr->conns_lock); in smc_cdc_rx_handler()
|
H A D | smc_tx.c | 231 queue_delayed_work(conn->lgr->tx_wq, &conn->tx_work, in smc_tx_sendmsg() 261 rc = smc_ism_write(conn->lgr->smcd, &pos, data, len); in smcd_tx_ism_write() 271 struct smc_link_group *lgr = conn->lgr; in smc_tx_rdma_write() local 278 lgr->rtokens[conn->rtoken_idx][link->link_idx].dma_addr + in smc_tx_rdma_write() 283 rdma_wr->rkey = lgr->rtokens[conn->rtoken_idx][link->link_idx].rkey; in smc_tx_rdma_write() 459 if (conn->lgr->is_smcd) in smc_tx_rdma_writes() 505 mod_delayed_work(conn->lgr->tx_wq, &conn->tx_work, in smcr_tx_sndbuf_nonempty() 566 if (conn->lgr->is_smcd) in smc_tx_sndbuf_nonempty() 630 queue_delayed_work(conn->lgr in smc_tx_consumer_update() [all...] |
/kernel/linux/linux-6.6/net/smc/ |
H A D | smc_core.c | 52 static void smc_buf_free(struct smc_link_group *lgr, bool is_rmb, 54 static void __smc_lgr_terminate(struct smc_link_group *lgr, bool soft); 59 static inline struct list_head *smc_lgr_list_head(struct smc_link_group *lgr, in smc_lgr_list_head() argument 62 if (lgr->is_smcd) { in smc_lgr_list_head() 63 *lgr_lock = &lgr->smcd->lgr_lock; in smc_lgr_list_head() 64 return &lgr->smcd->lgr_list; in smc_lgr_list_head() 81 static void smc_lgr_schedule_free_work(struct smc_link_group *lgr) in smc_lgr_schedule_free_work() argument 87 if (!lgr->freeing) { in smc_lgr_schedule_free_work() 88 mod_delayed_work(system_wq, &lgr->free_work, in smc_lgr_schedule_free_work() 89 (!lgr in smc_lgr_schedule_free_work() 199 struct smc_link_group *lgr = conn->lgr; __smc_lgr_unregister_conn() local 213 struct smc_link_group *lgr = conn->lgr; smc_lgr_unregister_conn() local 280 smc_nl_fill_lgr_v2_common(struct smc_link_group *lgr, struct sk_buff *skb, struct netlink_callback *cb, struct nlattr *v2_attrs) smc_nl_fill_lgr_v2_common() argument 311 smc_nl_fill_smcr_lgr_v2(struct smc_link_group *lgr, struct sk_buff *skb, struct netlink_callback *cb) smc_nl_fill_smcr_lgr_v2() argument 336 smc_nl_fill_lgr(struct smc_link_group *lgr, struct sk_buff *skb, struct netlink_callback *cb) smc_nl_fill_lgr() argument 384 smc_nl_fill_lgr_link(struct smc_link_group *lgr, struct smc_link *link, struct sk_buff *skb, struct netlink_callback *cb) smc_nl_fill_lgr_link() argument 445 smc_nl_handle_lgr(struct smc_link_group *lgr, struct sk_buff *skb, struct netlink_callback *cb, bool list_links) smc_nl_handle_lgr() argument 485 struct smc_link_group *lgr; smc_nl_fill_lgr_list() local 503 smc_nl_fill_smcd_lgr(struct smc_link_group *lgr, struct sk_buff *skb, struct netlink_callback *cb) smc_nl_fill_smcd_lgr() argument 567 struct smc_link_group *lgr; smc_nl_handle_smcd_lgr() local 638 smc_lgr_cleanup_early(struct smc_link_group *lgr) smc_lgr_cleanup_early() argument 654 smcr_lgr_link_deactivate_all(struct smc_link_group *lgr) smcr_lgr_link_deactivate_all() argument 672 struct smc_link_group *lgr = container_of(to_delayed_work(work), smc_lgr_free_work() local 708 struct smc_link_group *lgr = container_of(work, struct smc_link_group, smc_lgr_terminate_work() local 715 smcr_next_link_id(struct smc_link_group *lgr) smcr_next_link_id() argument 744 smcr_link_init(struct smc_link_group *lgr, struct smc_link *lnk, u8 link_idx, struct smc_init_info *ini) smcr_link_init() argument 828 struct smc_link_group *lgr; smc_lgr_create() local 1029 smc_switch_conns(struct smc_link_group *lgr, struct smc_link *from_lnk, bool is_dev_err) smc_switch_conns() argument 1107 smcr_buf_unuse(struct smc_buf_desc *buf_desc, bool is_rmb, struct smc_link_group *lgr) smcr_buf_unuse() argument 1142 smc_buf_unuse(struct smc_connection *conn, struct smc_link_group *lgr) smc_buf_unuse() argument 1167 struct smc_link_group *lgr = conn->lgr; smc_conn_free() local 1230 struct smc_link_group *lgr = lnk->lgr; smcr_buf_unmap_lgr() local 1250 struct smc_link_group *lgr = lnk->lgr; smcr_rtoken_clear_link() local 1261 struct smc_link_group *lgr = lnk->lgr; __smcr_link_clear() local 1304 smcr_buf_free(struct smc_link_group *lgr, bool is_rmb, struct smc_buf_desc *buf_desc) smcr_buf_free() argument 1319 smcd_buf_free(struct smc_link_group *lgr, bool is_dmb, struct smc_buf_desc *buf_desc) smcd_buf_free() argument 1332 smc_buf_free(struct smc_link_group *lgr, bool is_rmb, struct smc_buf_desc *buf_desc) smc_buf_free() argument 1341 __smc_lgr_free_bufs(struct smc_link_group *lgr, bool is_rmb) __smc_lgr_free_bufs() argument 1360 smc_lgr_free_bufs(struct smc_link_group *lgr) smc_lgr_free_bufs() argument 1369 __smc_lgr_free(struct smc_link_group *lgr) __smc_lgr_free() argument 1384 smc_lgr_free(struct smc_link_group *lgr) smc_lgr_free() argument 1406 smc_lgr_hold(struct smc_link_group *lgr) smc_lgr_hold() argument 1411 smc_lgr_put(struct smc_link_group *lgr) smc_lgr_put() argument 1449 smc_lgr_cleanup(struct smc_link_group *lgr) smc_lgr_cleanup() argument 1467 __smc_lgr_terminate(struct smc_link_group *lgr, bool soft) __smc_lgr_terminate() argument 1500 smc_lgr_terminate_sched(struct smc_link_group *lgr) smc_lgr_terminate_sched() argument 1519 struct smc_link_group *lgr, *l; smc_smcd_terminate() local 1545 struct smc_link_group *lgr, *lg; smc_smcd_terminate_all() local 1569 struct smc_link_group *lgr, *lg; smc_smcr_terminate_all() local 1605 smcr_lgr_set_type(struct smc_link_group *lgr, enum smc_lgr_type new_type) smcr_lgr_set_type() argument 1640 smcr_lgr_set_type_asym(struct smc_link_group *lgr, enum smc_lgr_type new_type, int asym_lnk_idx) smcr_lgr_set_type_asym() argument 1663 struct smc_link_group *lgr, *n; smcr_port_add() local 1692 struct smc_link_group *lgr = lnk->lgr; smcr_link_down() local 1750 struct smc_link_group *lgr, *n; smcr_port_err() local 1773 struct smc_link_group *lgr = link->lgr; smc_link_down_work() local 1831 smcr_lgr_match(struct smc_link_group *lgr, u8 smcr_version, u8 peer_systemid[], u8 peer_gid[], u8 peer_mac_v1[], enum smc_lgr_role role, u32 clcqpn, struct net *net) smcr_lgr_match() argument 1862 smcd_lgr_match(struct smc_link_group *lgr, struct smcd_dev *smcismdev, u64 peer_gid) smcd_lgr_match() argument 1874 struct smc_link_group *lgr; smc_conn_create() local 2150 struct smc_link_group *lgr = lnk->lgr; smcr_buf_map_lgr() local 2171 struct smc_link_group *lgr = lnk->lgr; smcr_buf_reg_lgr() local 2210 smcr_new_buf_create(struct smc_link_group *lgr, bool is_rmb, int bufsize) smcr_new_buf_create() argument 2258 smcr_buf_map_usable_links(struct smc_link_group *lgr, struct smc_buf_desc *buf_desc, bool is_rmb) smcr_buf_map_usable_links() argument 2283 smcd_new_buf_create(struct smc_link_group *lgr, bool is_dmb, int bufsize) smcd_new_buf_create() argument 2323 struct smc_link_group *lgr = conn->lgr; __smc_buf_create() local 2459 smc_rmb_reserve_rtoken_idx(struct smc_link_group *lgr) smc_rmb_reserve_rtoken_idx() argument 2470 smc_rtoken_find_by_link(struct smc_link_group *lgr, int lnk_idx, u32 rkey) smc_rtoken_find_by_link() argument 2484 smc_rtoken_set(struct smc_link_group *lgr, int link_idx, int link_idx_new, __be32 nw_rkey_known, __be64 nw_vaddr, __be32 nw_rkey) smc_rtoken_set() argument 2497 smc_rtoken_set2(struct smc_link_group *lgr, int rtok_idx, int link_id, __be64 nw_vaddr, __be32 nw_rkey) smc_rtoken_set2() argument 2520 struct smc_link_group *lgr = smc_get_lgr(lnk); smc_rtoken_add() local 2544 struct smc_link_group *lgr = smc_get_lgr(lnk); smc_rtoken_delete() local [all...] |
H A D | smc_llc.c | 232 static void smc_llc_flow_parallel(struct smc_link_group *lgr, u8 flow_type, in smc_llc_flow_parallel() argument 238 flow_type != msg_type && !lgr->delayed_event) { in smc_llc_flow_parallel() 239 lgr->delayed_event = qentry; in smc_llc_flow_parallel() 246 SMC_LGR_ID_SIZE, &lgr->id, in smc_llc_flow_parallel() 247 lgr->net->net_cookie, in smc_llc_flow_parallel() 249 flow_type, lgr->role); in smc_llc_flow_parallel() 257 struct smc_link_group *lgr = qentry->link->lgr; in smc_llc_flow_start() local 259 spin_lock_bh(&lgr->llc_flow_lock); in smc_llc_flow_start() 262 smc_llc_flow_parallel(lgr, flo in smc_llc_flow_start() 286 smc_llc_flow_initiate(struct smc_link_group *lgr, enum smc_llc_flowtype type) smc_llc_flow_initiate() argument 320 smc_llc_flow_stop(struct smc_link_group *lgr, struct smc_llc_flow *flow) smc_llc_flow_stop() argument 336 smc_llc_wait(struct smc_link_group *lgr, struct smc_link *lnk, int time_out, u8 exp_msg) smc_llc_wait() argument 434 smc_llc_init_msg_hdr(struct smc_llc_hdr *hdr, struct smc_link_group *lgr, size_t len) smc_llc_init_msg_hdr() argument 563 _smc_llc_get_next_rmb(struct smc_link_group *lgr, int *buf_lst) _smc_llc_get_next_rmb() argument 579 smc_llc_get_next_rmb(struct smc_link_group *lgr, int *buf_lst, struct smc_buf_desc *buf_pos) smc_llc_get_next_rmb() argument 596 smc_llc_get_first_rmb(struct smc_link_group *lgr, int *buf_lst) smc_llc_get_first_rmb() argument 606 struct smc_link_group *lgr = link->lgr; smc_llc_fill_ext_v2() local 807 smc_llc_alloc_alt_link(struct smc_link_group *lgr, enum smc_lgr_type lgr_new_t) smc_llc_alloc_alt_link() argument 837 struct smc_link_group *lgr = link->lgr; smc_llc_add_link_cont() local 891 struct smc_link_group *lgr = link->lgr; smc_llc_cli_rkey_exchange() local 946 struct smc_link_group *lgr = link->lgr; smc_llc_cli_conf_link() local 1003 struct smc_link_group *lgr = link->lgr; smc_llc_save_add_link_rkeys() local 1034 struct smc_link_group *lgr = smc_get_lgr(link); smc_llc_cli_add_link() local 1165 struct smc_link_group *lgr = smc_get_lgr(link); smc_llc_cli_add_link_invite() local 1214 smc_llc_process_cli_add_link(struct smc_link_group *lgr) smc_llc_process_cli_add_link() argument 1228 smc_llc_active_link_count(struct smc_link_group *lgr) smc_llc_active_link_count() argument 1241 smc_llc_find_asym_link(struct smc_link_group *lgr) smc_llc_find_asym_link() argument 1285 smc_llc_delete_asym_link(struct smc_link_group *lgr) smc_llc_delete_asym_link() argument 1323 struct smc_link_group *lgr = link->lgr; smc_llc_srv_rkey_exchange() local 1364 struct smc_link_group *lgr = link->lgr; smc_llc_srv_conf_link() local 1407 struct smc_link_group *lgr = link->lgr; smc_llc_srv_add_link() local 1524 smc_llc_process_srv_add_link(struct smc_link_group *lgr) smc_llc_process_srv_add_link() argument 1556 struct smc_link_group *lgr = container_of(work, struct smc_link_group, smc_llc_add_link_work() local 1589 smc_llc_process_cli_delete_link(struct smc_link_group *lgr) smc_llc_process_cli_delete_link() argument 1647 smc_llc_send_link_delete_all(struct smc_link_group *lgr, bool ord, u32 rsn) smc_llc_send_link_delete_all() argument 1667 smc_llc_process_srv_delete_link(struct smc_link_group *lgr) smc_llc_process_srv_delete_link() argument 1737 struct smc_link_group *lgr = container_of(work, struct smc_link_group, smc_llc_delete_link_work() local 1755 smc_llc_rmt_conf_rkey(struct smc_link_group *lgr) smc_llc_rmt_conf_rkey() argument 1795 smc_llc_rmt_delete_rkey(struct smc_link_group *lgr) smc_llc_rmt_delete_rkey() argument 1844 smc_llc_protocol_violation(struct smc_link_group *lgr, u8 type) smc_llc_protocol_violation() argument 1854 smc_llc_event_flush(struct smc_link_group *lgr) smc_llc_event_flush() argument 1870 struct smc_link_group *lgr = link->lgr; smc_llc_event_handler() local 1987 struct smc_link_group *lgr = container_of(work, struct smc_link_group, smc_llc_event_work() local 2059 struct smc_link_group *lgr = link->lgr; smc_llc_enqueue() local 2137 smc_llc_lgr_init(struct smc_link_group *lgr, struct smc_sock *smc) smc_llc_lgr_init() argument 2154 smc_llc_lgr_clear(struct smc_link_group *lgr) smc_llc_lgr_clear() argument 2211 struct smc_link_group *lgr = send_link->lgr; smc_llc_do_confirm_rkey() local 2230 smc_llc_do_delete_rkey(struct smc_link_group *lgr, struct smc_buf_desc *rmb_desc) smc_llc_do_delete_rkey() argument [all...] |
H A D | smc_llc.h | 63 static inline struct smc_link *smc_llc_usable_link(struct smc_link_group *lgr) in smc_llc_usable_link() argument 68 if (smc_link_usable(&lgr->lnk[i])) in smc_llc_usable_link() 69 return &lgr->lnk[i]; in smc_llc_usable_link() 74 static inline void smc_llc_set_termination_rsn(struct smc_link_group *lgr, in smc_llc_set_termination_rsn() argument 77 if (!lgr->llc_termination_rsn) in smc_llc_set_termination_rsn() 78 lgr->llc_termination_rsn = rsn; in smc_llc_set_termination_rsn() 91 void smc_llc_lgr_init(struct smc_link_group *lgr, struct smc_sock *smc); 92 void smc_llc_lgr_clear(struct smc_link_group *lgr); 98 int smc_llc_do_delete_rkey(struct smc_link_group *lgr, 100 int smc_llc_flow_initiate(struct smc_link_group *lgr, [all...] |
H A D | smc_ism.c | 77 spin_lock_irqsave(&conn->lgr->smcd->lock, flags); in smc_ism_set_conn() 78 conn->lgr->smcd->conn[conn->rmb_desc->sba_idx] = conn; in smc_ism_set_conn() 79 spin_unlock_irqrestore(&conn->lgr->smcd->lock, flags); in smc_ism_set_conn() 90 spin_lock_irqsave(&conn->lgr->smcd->lock, flags); in smc_ism_unset_conn() 91 conn->lgr->smcd->conn[conn->rmb_desc->sba_idx] = NULL; in smc_ism_unset_conn() 92 spin_unlock_irqrestore(&conn->lgr->smcd->lock, flags); in smc_ism_unset_conn() 200 int smc_ism_register_dmb(struct smc_link_group *lgr, int dmb_len, in smc_ism_register_dmb() argument 210 dmb.vlan_id = lgr->vlan_id; in smc_ism_register_dmb() 211 dmb.rgid = lgr->peer_gid; in smc_ism_register_dmb() 212 rc = lgr in smc_ism_register_dmb() 516 smc_ism_signal_shutdown(struct smc_link_group *lgr) smc_ism_signal_shutdown() argument [all...] |
H A D | smc_tracepoint.h | 93 __field(const void *, lgr) 101 const struct smc_link_group *lgr = lnk->lgr; 104 __entry->lgr = lgr; 105 __entry->net_cookie = lgr->net->net_cookie; 111 TP_printk("lnk=%p lgr=%p net=%llu state=%d dev=%s location=%pS", 112 __entry->lnk, __entry->lgr, __entry->net_cookie,
|
H A D | smc_wr.c | 96 if (link->lgr->smc_version != SMC_V2 || in smc_wr_tx_process_cqe() 104 memset(link->lgr->wr_tx_buf_v2, 0, in smc_wr_tx_process_cqe() 105 sizeof(*link->lgr->wr_tx_buf_v2)); in smc_wr_tx_process_cqe() 122 if (link->lgr->smc_version == SMC_V2) { in smc_wr_tx_process_cqe() 125 memset(link->lgr->wr_tx_buf_v2, 0, in smc_wr_tx_process_cqe() 126 sizeof(*link->lgr->wr_tx_buf_v2)); in smc_wr_tx_process_cqe() 201 struct smc_link_group *lgr = smc_get_lgr(link); in smc_wr_tx_get_free_slot() local 210 if (in_softirq() || lgr->terminating) { in smc_wr_tx_get_free_slot() 218 lgr->terminating || in smc_wr_tx_get_free_slot() 266 *wr_buf = link->lgr in smc_wr_tx_get_v2_slot() 680 smc_wr_free_lgr_mem(struct smc_link_group *lgr) smc_wr_free_lgr_mem() argument 723 smc_wr_alloc_lgr_mem(struct smc_link_group *lgr) smc_wr_alloc_lgr_mem() argument [all...] |
H A D | smc_core.h | 155 u8 link_idx; /* index in lgr link array */ 159 struct smc_link_group *lgr; /* parent link group */ member 186 /* tx/rx buffer list element for sndbufs list and rmbs list of a lgr */ 242 enum smc_lgr_type { /* redundancy state of lgr */ 243 SMC_LGR_NONE, /* no active links, lgr to be deleted */ 283 u8 id[SMC_LGR_ID_SIZE]; /* unique lgr id */ 284 struct delayed_work free_work; /* delayed freeing of an lgr */ 285 struct work_struct terminate_work; /* abnormal lgr termination */ 287 u8 sync_err : 1; /* lgr no longer fits to peer */ 288 u8 terminating : 1;/* lgr i 434 smc_lgr_find_conn( u32 token, struct smc_link_group *lgr) smc_lgr_find_conn() argument [all...] |
H A D | smc_ib.c | 75 if (lnk->lgr->smc_version == SMC_V2 && lnk->lgr->uses_gateway) in smc_ib_modify_qp_rtr() 79 if (lnk->lgr->smc_version == SMC_V2 && lnk->lgr->uses_gateway) in smc_ib_modify_qp_rtr() 80 memcpy(&qp_attr.ah_attr.roce.dmac, lnk->lgr->nexthop_mac, in smc_ib_modify_qp_rtr() 81 sizeof(lnk->lgr->nexthop_mac)); in smc_ib_modify_qp_rtr() 125 struct smc_link_group *lgr = smc_get_lgr(lnk); in smc_ib_ready_link() local 145 if (lgr->role == SMC_SERV) { in smc_ib_ready_link() 330 struct smc_link_group *lgr; in smc_ib_gid_check() local 334 list_for_each_entry(lgr, in smc_ib_gid_check() 467 struct smc_link_group *lgr; smcr_diag_is_dev_critical() local [all...] |
H A D | af_smc.c | 526 struct smc_link_group *lgr = link->lgr; in smcr_lgr_reg_sndbufs() local 533 down_write(&lgr->llc_conf_mutex); in smcr_lgr_reg_sndbufs() 535 if (!smc_link_active(&lgr->lnk[i])) in smcr_lgr_reg_sndbufs() 537 rc = smcr_link_reg_buf(&lgr->lnk[i], snd_desc); in smcr_lgr_reg_sndbufs() 541 up_write(&lgr->llc_conf_mutex); in smcr_lgr_reg_sndbufs() 549 struct smc_link_group *lgr = link->lgr; in smcr_lgr_reg_rmbs() local 553 rc = smc_llc_flow_initiate(lgr, SMC_LLC_FLOW_RKEY); in smcr_lgr_reg_rmbs() 557 down_read(&lgr in smcr_lgr_reg_rmbs() 991 struct smc_link_group *lgr = conn->lgr; smc_conn_abort() local 1172 smc_fill_gid_list(struct smc_link_group *lgr, struct smc_gidlist *gidlist, struct smc_ib_device *known_dev, u8 *known_gid) smc_fill_gid_list() argument [all...] |
H A D | smc_diag.c | 92 else if (smc_conn_lgr_valid(&smc->conn) && smc->conn.lgr->is_smcd) in __smc_diag_dump() 145 if (smc_conn_lgr_valid(&smc->conn) && !smc->conn.lgr->is_smcd && in __smc_diag_dump() 147 !list_empty(&smc->conn.lgr->list)) { in __smc_diag_dump() 151 .role = smc->conn.lgr->role, in __smc_diag_dump() 164 if (smc_conn_lgr_valid(&smc->conn) && smc->conn.lgr->is_smcd && in __smc_diag_dump() 166 !list_empty(&smc->conn.lgr->list) && smc->conn.rmb_desc) { in __smc_diag_dump() 169 struct smcd_dev *smcd = conn->lgr->smcd; in __smc_diag_dump() 173 dinfo.linkid = *((u32 *)conn->lgr->id); in __smc_diag_dump() 174 dinfo.peer_gid = conn->lgr->peer_gid; in __smc_diag_dump()
|
H A D | smc_cdc.c | 213 (conn->lgr->is_smcd && conn->lgr->peer_shutdown)) in smc_cdc_get_slot_and_msg_send() 216 if (conn->lgr->is_smcd) { in smc_cdc_get_slot_and_msg_send() 442 struct smc_link_group *lgr; in smc_cdc_rx_handler() local 451 lgr = smc_get_lgr(link); in smc_cdc_rx_handler() 452 read_lock_bh(&lgr->conns_lock); in smc_cdc_rx_handler() 453 conn = smc_lgr_find_conn(ntohl(cdc->token), lgr); in smc_cdc_rx_handler() 454 read_unlock_bh(&lgr->conns_lock); in smc_cdc_rx_handler()
|
/kernel/linux/linux-6.6/arch/s390/purgatory/ |
H A D | head.S | 37 lgr %r0,\dst 38 lgr %r1,\len 39 lgr %r2,\src 40 lgr %r3,\len 52 lgr %r4,\len 54 11: lgr %r4,%r0 144 lgr %r8,%r13 169 lgr %r7,%r9 185 lgr %r0,%r7 205 lgr [all...] |
/kernel/linux/linux-5.10/arch/s390/purgatory/ |
H A D | head.S | 37 lgr %r0,\dst 38 lgr %r1,\len 39 lgr %r2,\src 40 lgr %r3,\len 49 lgr %r4,\len 138 lgr %r8,%r13 159 lgr %r7,%r9 189 lgr %r12,%r7 190 lgr %r11,%r9
|
/kernel/linux/linux-5.10/arch/s390/lib/ |
H A D | mem.S | 20 lgr %r1,%r2 78 lgr %r1,%r2 91 lgr %r1,%r2 129 lgr %r1,%r2 163 lgr %r1,%r2
|
/kernel/linux/linux-6.6/arch/s390/lib/ |
H A D | mem.S | 19 lgr %r1,%r2 79 lgr %r1,%r2 92 lgr %r1,%r2 132 lgr %r1,%r2 169 lgr %r1,%r2
|
/kernel/linux/linux-5.10/arch/s390/boot/ |
H A D | text_dma.S | 30 lgr %r1,%r2 31 lgr %r2,%r3 32 lgr %r3,%r4 50 lgr %r1,%r2
|
/kernel/linux/linux-5.10/arch/s390/kernel/ |
H A D | relocate_kernel.S | 38 lgr %r6,%r5 # r6 = r5 45 lgr %r2,%r5 # move it into the right register, 54 lgr %r8,%r5 # r8 = r5
|