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);
273 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
276 ret = rxrpc_validate_address(rx, srx, sizeof(*srx));
280 return rxrpc_lookup_peer(rx->local, srx, gfp);
344 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
348 if (WARN_ON_ONCE(peer->local != rx->local))
351 lock_sock(&rx->sk);
354 key = rx->key;
366 cp.local = rx->local;
369 cp.security_level = rx->min_sec_level;
373 call = rxrpc_new_client_call(rx, &cp, &p, gfp, debug_id);
479 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
481 rx->notify_new_call = notify_new_call;
482 rx->discard_new_call = discard_new_call;
520 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
523 _enter("%p,%p,%d,%d", rx, addr, addr_len, flags);
525 ret = rxrpc_validate_address(rx, srx, addr_len);
531 lock_sock(&rx->sk);
534 if (test_bit(RXRPC_SOCK_CONNECTED, &rx->flags))
537 switch (rx->sk.sk_state) {
539 rx->sk.sk_state = RXRPC_CLIENT_UNBOUND;
549 rx->connect_srx = *srx;
550 set_bit(RXRPC_SOCK_CONNECTED, &rx->flags);
554 release_sock(&rx->sk);
570 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
573 _enter(",{%d},,%zu", rx->sk.sk_state, len);
579 ret = rxrpc_validate_address(rx, m->msg_name, m->msg_namelen);
586 lock_sock(&rx->sk);
588 switch (rx->sk.sk_state) {
591 rx->srx.srx_family = AF_RXRPC;
592 rx->srx.srx_service = 0;
593 rx->srx.transport_type = SOCK_DGRAM;
594 rx->srx.transport.family = rx->family;
595 switch (rx->family) {
597 rx->srx.transport_len = sizeof(struct sockaddr_in);
601 rx->srx.transport_len = sizeof(struct sockaddr_in6);
608 local = rxrpc_lookup_local(sock_net(sock->sk), &rx->srx);
614 rx->local = local;
615 rx->sk.sk_state = RXRPC_CLIENT_BOUND;
620 test_bit(RXRPC_SOCK_CONNECTED, &rx->flags)) {
621 m->msg_name = &rx->connect_srx;
622 m->msg_namelen = sizeof(rx->connect_srx);
627 ret = rxrpc_do_sendmsg(rx, m, len);
636 release_sock(&rx->sk);
661 struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
668 lock_sock(&rx->sk);
678 if (rx->sk.sk_state != RXRPC_UNBOUND)
680 rx->exclusive = true;
685 if (rx->key)
688 if (rx->sk.sk_state != RXRPC_UNBOUND)
690 ret = rxrpc_request_key(rx, optval, optlen);
695 if (rx->key)
698 if (rx->sk.sk_state != RXRPC_UNBOUND)
700 ret = rxrpc_server_keyring(rx, optval, optlen);
708 if (rx->sk.sk_state != RXRPC_UNBOUND)
717 rx->min_sec_level = min_sec_level;
723 rx->service_upgrade.from != 0)
726 if (rx->sk.sk_state != RXRPC_SERVER_BOUND2)
733 if ((service_upgrade[0] != rx->srx.srx_service ||
734 service_upgrade[1] != rx->second_service) &&
735 (service_upgrade[0] != rx->second_service ||
736 service_upgrade[1] != rx->srx.srx_service))
738 rx->service_upgrade.from = service_upgrade[0];
739 rx->service_upgrade.to = service_upgrade[1];
750 release_sock(&rx->sk);
789 struct rxrpc_sock *rx = rxrpc_sk(sk);
797 if (!list_empty(&rx->recvmsg_q))
816 struct rxrpc_sock *rx;
843 rx = rxrpc_sk(sk);
844 rx->family = protocol;
845 rx->calls = RB_ROOT;
847 spin_lock_init(&rx->incoming_lock);
848 INIT_LIST_HEAD(&rx->sock_calls);
849 INIT_LIST_HEAD(&rx->to_be_accepted);
850 INIT_LIST_HEAD(&rx->recvmsg_q);
851 spin_lock_init(&rx->recvmsg_lock);
852 rwlock_init(&rx->call_lock);
853 memset(&rx->srx, 0, sizeof(rx->srx));
855 rxnet = rxrpc_net(sock_net(&rx->sk));
858 _leave(" = 0 [%p]", rx);
868 struct rxrpc_sock *rx = rxrpc_sk(sk);
887 rxrpc_discard_prealloc(rx);
917 struct rxrpc_sock *rx = rxrpc_sk(sk);
934 rx->local->service_closed = true;
940 if (rx->local && rx->local->service == rx) {
941 write_lock(&rx->local->services_lock);
942 rx->local->service = NULL;
943 write_unlock(&rx->local->services_lock);
947 rxrpc_discard_prealloc(rx);
948 rxrpc_release_calls_on_socket(rx);
952 rxrpc_unuse_local(rx->local, rxrpc_local_unuse_release_sock);
953 rxrpc_put_local(rx->local, rxrpc_local_put_release_sock);
954 rx->local = NULL;
955 key_put(rx->key);
956 rx->key = NULL;
957 key_put(rx->securities);
958 rx->securities = NULL;