Lines Matching refs:srv

257 	struct tipc_topsrv *srv = con->server;  in tipc_conn_send_to_sock()  local
291 tipc_topsrv_kern_evt(srv->net, evt); in tipc_conn_send_to_sock()
322 struct tipc_topsrv *srv = tipc_topsrv(net); in tipc_topsrv_queue_evt() local
326 con = tipc_conn_lookup(srv, conid); in tipc_topsrv_queue_evt()
342 if (queue_work(srv->send_wq, &con->swork)) in tipc_topsrv_queue_evt()
366 static int tipc_conn_rcv_sub(struct tipc_topsrv *srv, in tipc_conn_rcv_sub() argument
370 struct tipc_net *tn = tipc_net(srv->net); in tipc_conn_rcv_sub()
381 sub = tipc_sub_subscribe(srv->net, s, con->conid); in tipc_conn_rcv_sub()
393 struct tipc_topsrv *srv = con->server; in tipc_conn_rcv_from_sock() local
409 ret = tipc_conn_rcv_sub(srv, con, &s); in tipc_conn_rcv_from_sock()
455 struct tipc_topsrv *srv = container_of(work, struct tipc_topsrv, awork); in tipc_topsrv_accept() local
456 struct socket *lsock = srv->listener; in tipc_topsrv_accept()
466 con = tipc_conn_alloc(srv); in tipc_topsrv_accept()
491 struct tipc_topsrv *srv; in tipc_topsrv_listener_data_ready() local
494 srv = sk->sk_user_data; in tipc_topsrv_listener_data_ready()
495 if (srv->listener) in tipc_topsrv_listener_data_ready()
496 queue_work(srv->rcv_wq, &srv->awork); in tipc_topsrv_listener_data_ready()
500 static int tipc_topsrv_create_listener(struct tipc_topsrv *srv) in tipc_topsrv_create_listener() argument
508 rc = sock_create_kern(srv->net, AF_TIPC, SOCK_SEQPACKET, 0, &lsock); in tipc_topsrv_create_listener()
512 srv->listener = lsock; in tipc_topsrv_create_listener()
516 sk->sk_user_data = srv; in tipc_topsrv_create_listener()
649 struct tipc_topsrv *srv; in tipc_topsrv_start() local
652 srv = kzalloc(sizeof(*srv), GFP_ATOMIC); in tipc_topsrv_start()
653 if (!srv) in tipc_topsrv_start()
656 srv->net = net; in tipc_topsrv_start()
657 srv->max_rcvbuf_size = sizeof(struct tipc_subscr); in tipc_topsrv_start()
658 INIT_WORK(&srv->awork, tipc_topsrv_accept); in tipc_topsrv_start()
660 strncpy(srv->name, name, strlen(name) + 1); in tipc_topsrv_start()
661 tn->topsrv = srv; in tipc_topsrv_start()
664 spin_lock_init(&srv->idr_lock); in tipc_topsrv_start()
665 idr_init(&srv->conn_idr); in tipc_topsrv_start()
666 srv->idr_in_use = 0; in tipc_topsrv_start()
668 ret = tipc_topsrv_work_start(srv); in tipc_topsrv_start()
672 ret = tipc_topsrv_create_listener(srv); in tipc_topsrv_start()
674 tipc_topsrv_work_stop(srv); in tipc_topsrv_start()
681 struct tipc_topsrv *srv = tipc_topsrv(net); in tipc_topsrv_stop() local
682 struct socket *lsock = srv->listener; in tipc_topsrv_stop()
686 spin_lock_bh(&srv->idr_lock); in tipc_topsrv_stop()
687 for (id = 0; srv->idr_in_use; id++) { in tipc_topsrv_stop()
688 con = idr_find(&srv->conn_idr, id); in tipc_topsrv_stop()
690 spin_unlock_bh(&srv->idr_lock); in tipc_topsrv_stop()
692 spin_lock_bh(&srv->idr_lock); in tipc_topsrv_stop()
697 srv->listener = NULL; in tipc_topsrv_stop()
698 spin_unlock_bh(&srv->idr_lock); in tipc_topsrv_stop()
700 tipc_topsrv_work_stop(srv); in tipc_topsrv_stop()
701 idr_destroy(&srv->conn_idr); in tipc_topsrv_stop()
702 kfree(srv); in tipc_topsrv_stop()