Lines Matching refs:rx
76 static int rxrpc_validate_address(struct rxrpc_sock *rx,
98 if (rx->family != AF_INET &&
99 rx->family != AF_INET6)
108 if (rx->family != AF_INET6)
134 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
138 _enter("%p,%p,%d", rx, saddr, len);
140 ret = rxrpc_validate_address(rx, srx, len);
145 lock_sock(&rx->sk);
147 switch (rx->sk.sk_state) {
149 rx->srx = *srx;
150 local = rxrpc_lookup_local(sock_net(&rx->sk), &rx->srx);
160 rx->local = local;
161 local->service = rx;
164 rx->sk.sk_state = RXRPC_SERVER_BOUND;
166 rx->local = local;
167 rx->sk.sk_state = RXRPC_CLIENT_BOUND;
176 if (service_id == rx->srx.srx_service)
179 srx->srx_service = rx->srx.srx_service;
180 if (memcmp(srx, &rx->srx, sizeof(*srx)) != 0)
182 rx->second_service = service_id;
183 rx->sk.sk_state = RXRPC_SERVER_BOUND2;
191 release_sock(&rx->sk);
201 release_sock(&rx->sk);
213 struct rxrpc_sock *rx = rxrpc_sk(sk);
217 _enter("%p,%d", rx, backlog);
219 lock_sock(&rx->sk);
221 switch (rx->sk.sk_state) {
227 ASSERT(rx->local != NULL);
236 ret = rxrpc_service_prealloc(rx, GFP_KERNEL);
238 rx->sk.sk_state = RXRPC_SERVER_LISTENING;
244 rx->sk.sk_state = RXRPC_SERVER_LISTEN_DISABLED;
246 rxrpc_discard_prealloc(rx);
256 release_sock(&rx->sk);
297 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
302 ret = rxrpc_validate_address(rx, srx, sizeof(*srx));
306 lock_sock(&rx->sk);
309 key = rx->key;
321 cp.local = rx->local;
323 cp.security_level = rx->min_sec_level;
327 call = rxrpc_new_client_call(rx, &cp, srx, &p, gfp, debug_id);
433 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
435 rx->notify_new_call = notify_new_call;
436 rx->discard_new_call = discard_new_call;
474 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
477 _enter("%p,%p,%d,%d", rx, addr, addr_len, flags);
479 ret = rxrpc_validate_address(rx, srx, addr_len);
485 lock_sock(&rx->sk);
488 if (test_bit(RXRPC_SOCK_CONNECTED, &rx->flags))
491 switch (rx->sk.sk_state) {
493 rx->sk.sk_state = RXRPC_CLIENT_UNBOUND;
503 rx->connect_srx = *srx;
504 set_bit(RXRPC_SOCK_CONNECTED, &rx->flags);
508 release_sock(&rx->sk);
524 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
527 _enter(",{%d},,%zu", rx->sk.sk_state, len);
533 ret = rxrpc_validate_address(rx, m->msg_name, m->msg_namelen);
540 lock_sock(&rx->sk);
542 switch (rx->sk.sk_state) {
545 rx->srx.srx_family = AF_RXRPC;
546 rx->srx.srx_service = 0;
547 rx->srx.transport_type = SOCK_DGRAM;
548 rx->srx.transport.family = rx->family;
549 switch (rx->family) {
551 rx->srx.transport_len = sizeof(struct sockaddr_in);
555 rx->srx.transport_len = sizeof(struct sockaddr_in6);
562 local = rxrpc_lookup_local(sock_net(sock->sk), &rx->srx);
568 rx->local = local;
569 rx->sk.sk_state = RXRPC_CLIENT_BOUND;
574 test_bit(RXRPC_SOCK_CONNECTED, &rx->flags)) {
575 m->msg_name = &rx->connect_srx;
576 m->msg_namelen = sizeof(rx->connect_srx);
581 ret = rxrpc_do_sendmsg(rx, m, len);
590 release_sock(&rx->sk);
615 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
622 lock_sock(&rx->sk);
632 if (rx->sk.sk_state != RXRPC_UNBOUND)
634 rx->exclusive = true;
639 if (rx->key)
642 if (rx->sk.sk_state != RXRPC_UNBOUND)
644 ret = rxrpc_request_key(rx, optval, optlen);
649 if (rx->key)
652 if (rx->sk.sk_state != RXRPC_UNBOUND)
654 ret = rxrpc_server_keyring(rx, optval, optlen);
662 if (rx->sk.sk_state != RXRPC_UNBOUND)
671 rx->min_sec_level = min_sec_level;
677 rx->service_upgrade.from != 0)
680 if (rx->sk.sk_state != RXRPC_SERVER_BOUND2)
687 if ((service_upgrade[0] != rx->srx.srx_service ||
688 service_upgrade[1] != rx->second_service) &&
689 (service_upgrade[0] != rx->second_service ||
690 service_upgrade[1] != rx->srx.srx_service))
692 rx->service_upgrade.from = service_upgrade[0];
693 rx->service_upgrade.to = service_upgrade[1];
704 release_sock(&rx->sk);
743 struct rxrpc_sock *rx = rxrpc_sk(sk);
751 if (!list_empty(&rx->recvmsg_q))
770 struct rxrpc_sock *rx;
797 rx = rxrpc_sk(sk);
798 rx->family = protocol;
799 rx->calls = RB_ROOT;
801 spin_lock_init(&rx->incoming_lock);
802 INIT_LIST_HEAD(&rx->sock_calls);
803 INIT_LIST_HEAD(&rx->to_be_accepted);
804 INIT_LIST_HEAD(&rx->recvmsg_q);
805 spin_lock_init(&rx->recvmsg_lock);
806 rwlock_init(&rx->call_lock);
807 memset(&rx->srx, 0, sizeof(rx->srx));
809 rxnet = rxrpc_net(sock_net(&rx->sk));
812 _leave(" = 0 [%p]", rx);
822 struct rxrpc_sock *rx = rxrpc_sk(sk);
841 rxrpc_discard_prealloc(rx);
871 struct rxrpc_sock *rx = rxrpc_sk(sk);
888 rx->local->service_closed = true;
894 if (rx->local && rx->local->service == rx) {
895 write_lock(&rx->local->services_lock);
896 rx->local->service = NULL;
897 write_unlock(&rx->local->services_lock);
901 rxrpc_discard_prealloc(rx);
902 rxrpc_release_calls_on_socket(rx);
906 rxrpc_unuse_local(rx->local, rxrpc_local_unuse_release_sock);
907 rxrpc_put_local(rx->local, rxrpc_local_put_release_sock);
908 rx->local = NULL;
909 key_put(rx->key);
910 rx->key = NULL;
911 key_put(rx->securities);
912 rx->securities = NULL;