qp_flow 72 drivers/infiniband/hw/usnic/usnic_debugfs.c struct usnic_ib_qp_grp_flow *qp_flow; qp_flow 78 drivers/infiniband/hw/usnic/usnic_debugfs.c qp_flow = f->private_data; qp_flow 85 drivers/infiniband/hw/usnic/usnic_debugfs.c spin_lock(&qp_flow->qp_grp->lock); qp_flow 88 drivers/infiniband/hw/usnic/usnic_debugfs.c qp_flow->qp_grp->grp_id, qp_flow 89 drivers/infiniband/hw/usnic/usnic_debugfs.c usnic_transport_to_str(qp_flow->trans_type)); qp_flow 91 drivers/infiniband/hw/usnic/usnic_debugfs.c if (qp_flow->trans_type == USNIC_TRANSPORT_ROCE_CUSTOM) { qp_flow 93 drivers/infiniband/hw/usnic/usnic_debugfs.c qp_flow->usnic_roce.port_num); qp_flow 95 drivers/infiniband/hw/usnic/usnic_debugfs.c } else if (qp_flow->trans_type == USNIC_TRANSPORT_IPV4_UDP) { qp_flow 97 drivers/infiniband/hw/usnic/usnic_debugfs.c qp_flow->udp.sock); qp_flow 102 drivers/infiniband/hw/usnic/usnic_debugfs.c spin_unlock(&qp_flow->qp_grp->lock); qp_flow 129 drivers/infiniband/hw/usnic/usnic_debugfs.c void usnic_debugfs_flow_add(struct usnic_ib_qp_grp_flow *qp_flow) qp_flow 131 drivers/infiniband/hw/usnic/usnic_debugfs.c scnprintf(qp_flow->dentry_name, sizeof(qp_flow->dentry_name), qp_flow 132 drivers/infiniband/hw/usnic/usnic_debugfs.c "%u", qp_flow->flow->flow_id); qp_flow 133 drivers/infiniband/hw/usnic/usnic_debugfs.c qp_flow->dbgfs_dentry = debugfs_create_file(qp_flow->dentry_name, qp_flow 136 drivers/infiniband/hw/usnic/usnic_debugfs.c qp_flow, qp_flow 140 drivers/infiniband/hw/usnic/usnic_debugfs.c void usnic_debugfs_flow_remove(struct usnic_ib_qp_grp_flow *qp_flow) qp_flow 142 drivers/infiniband/hw/usnic/usnic_debugfs.c debugfs_remove(qp_flow->dbgfs_dentry); qp_flow 41 drivers/infiniband/hw/usnic/usnic_debugfs.h void usnic_debugfs_flow_add(struct usnic_ib_qp_grp_flow *qp_flow); qp_flow 42 drivers/infiniband/hw/usnic/usnic_debugfs.h void usnic_debugfs_flow_remove(struct usnic_ib_qp_grp_flow *qp_flow); qp_flow 211 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c struct usnic_ib_qp_grp_flow *qp_flow; qp_flow 236 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow = kzalloc(sizeof(*qp_flow), GFP_ATOMIC); qp_flow 237 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c if (!qp_flow) { qp_flow 241 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->flow = flow; qp_flow 242 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->trans_type = trans_type; qp_flow 243 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->usnic_roce.port_num = port_num; qp_flow 244 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->qp_grp = qp_grp; qp_flow 245 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c return qp_flow; qp_flow 254 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c static void release_roce_custom_flow(struct usnic_ib_qp_grp_flow *qp_flow) qp_flow 256 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c usnic_fwd_dealloc_flow(qp_flow->flow); qp_flow 257 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c usnic_transport_unrsrv_port(qp_flow->trans_type, qp_flow 258 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->usnic_roce.port_num); qp_flow 259 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c kfree(qp_flow); qp_flow 271 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c struct usnic_ib_qp_grp_flow *qp_flow; qp_flow 309 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow = kzalloc(sizeof(*qp_flow), GFP_ATOMIC); qp_flow 310 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c if (!qp_flow) { qp_flow 314 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->flow = flow; qp_flow 315 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->trans_type = trans_type; qp_flow 316 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->udp.sock = sock; qp_flow 317 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->qp_grp = qp_grp; qp_flow 318 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c return qp_flow; qp_flow 327 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c static void release_udp_flow(struct usnic_ib_qp_grp_flow *qp_flow) qp_flow 329 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c usnic_fwd_dealloc_flow(qp_flow->flow); qp_flow 330 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c usnic_transport_put_socket(qp_flow->udp.sock); qp_flow 331 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c kfree(qp_flow); qp_flow 338 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c struct usnic_ib_qp_grp_flow *qp_flow; qp_flow 344 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow = create_roce_custom_flow(qp_grp, trans_spec); qp_flow 347 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow = create_udp_flow(qp_grp, trans_spec); qp_flow 355 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c if (!IS_ERR_OR_NULL(qp_flow)) { qp_flow 356 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c list_add_tail(&qp_flow->link, &qp_grp->flows_lst); qp_flow 357 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c usnic_debugfs_flow_add(qp_flow); qp_flow 361 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c return qp_flow; qp_flow 364 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c static void release_and_remove_flow(struct usnic_ib_qp_grp_flow *qp_flow) qp_flow 366 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c usnic_debugfs_flow_remove(qp_flow); qp_flow 367 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c list_del(&qp_flow->link); qp_flow 369 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c switch (qp_flow->trans_type) { qp_flow 371 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c release_roce_custom_flow(qp_flow); qp_flow 374 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c release_udp_flow(qp_flow); qp_flow 378 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow->trans_type); qp_flow 385 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c struct usnic_ib_qp_grp_flow *qp_flow, *tmp; qp_flow 386 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c list_for_each_entry_safe(qp_flow, tmp, &qp_grp->flows_lst, link) qp_flow 387 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c release_and_remove_flow(qp_flow); qp_flow 398 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c struct usnic_ib_qp_grp_flow *qp_flow; qp_flow 428 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow = create_and_add_flow(qp_grp, qp_flow 430 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c if (IS_ERR_OR_NULL(qp_flow)) { qp_flow 431 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c status = qp_flow ? PTR_ERR(qp_flow) : -EFAULT; qp_flow 443 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow = create_and_add_flow(qp_grp, qp_flow 445 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c if (IS_ERR_OR_NULL(qp_flow)) { qp_flow 446 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c status = qp_flow ? PTR_ERR(qp_flow) : -EFAULT; qp_flow 636 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c static int qp_grp_id_from_flow(struct usnic_ib_qp_grp_flow *qp_flow, qp_flow 639 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c enum usnic_transport_type trans_type = qp_flow->trans_type; qp_flow 645 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c *id = qp_flow->usnic_roce.port_num; qp_flow 648 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c err = usnic_transport_sock_get_addr(qp_flow->udp.sock, qp_flow 677 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c struct usnic_ib_qp_grp_flow *qp_flow; qp_flow 712 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c qp_flow = create_and_add_flow(qp_grp, transport_spec); qp_flow 713 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c if (IS_ERR_OR_NULL(qp_flow)) { qp_flow 715 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c PTR_ERR(qp_flow)); qp_flow 716 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c err = qp_flow ? PTR_ERR(qp_flow) : -EFAULT; qp_flow 720 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c err = qp_grp_id_from_flow(qp_flow, &qp_grp->grp_id); qp_flow 730 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c release_and_remove_flow(qp_flow);