Lines Matching refs:local
29 struct rxrpc_local *local = rcu_dereference_sk_user_data(udp_sk); in rxrpc_encap_rcv() local
32 if (unlikely(!local)) { in rxrpc_encap_rcv()
36 io_thread = READ_ONCE(local->io_thread); in rxrpc_encap_rcv()
46 rx_queue = &local->rx_queue; in rxrpc_encap_rcv()
49 !skb_queue_empty(&local->rx_delay_queue)) { in rxrpc_encap_rcv()
51 rx_queue = &local->rx_delay_queue; in rxrpc_encap_rcv()
65 struct rxrpc_local *local; in rxrpc_error_report() local
69 local = rcu_dereference_sk_user_data(sk); in rxrpc_error_report()
70 if (unlikely(!local)) { in rxrpc_error_report()
78 skb_queue_tail(&local->rx_queue, skb); in rxrpc_error_report()
81 rxrpc_wake_up_io_thread(local); in rxrpc_error_report()
110 static bool rxrpc_input_version(struct rxrpc_local *local, struct sk_buff *skb) in rxrpc_input_version() argument
120 rxrpc_send_version_request(local, &sp->hdr, skb); in rxrpc_input_version()
181 static bool rxrpc_input_packet(struct rxrpc_local *local, struct sk_buff **_skb) in rxrpc_input_packet() argument
212 return rxrpc_input_version(local, skb); in rxrpc_input_packet()
279 if (peer_srx.transport.family != local->srx.transport.family && in rxrpc_input_packet()
281 local->srx.transport.family != AF_INET6)) { in rxrpc_input_packet()
284 local->srx.transport.family); in rxrpc_input_packet()
290 conn = rxrpc_find_client_connection_rcu(local, &peer_srx, skb); in rxrpc_input_packet()
307 peer = rxrpc_lookup_peer_rcu(local, &peer_srx); in rxrpc_input_packet()
310 return rxrpc_new_incoming_call(local, NULL, NULL, &peer_srx, skb); in rxrpc_input_packet()
325 ret = rxrpc_new_incoming_call(local, peer, NULL, &peer_srx, skb); in rxrpc_input_packet()
418 return rxrpc_new_incoming_call(conn->local, conn->peer, conn, in rxrpc_input_packet_on_conn()
434 struct rxrpc_local *local = data; in rxrpc_io_thread() local
442 complete(&local->io_thread_ready); in rxrpc_io_thread()
449 rxrpc_inc_stat(local->rxnet, stat_io_loop); in rxrpc_io_thread()
452 conn = list_first_entry_or_null(&local->conn_attend_q, in rxrpc_io_thread()
456 spin_lock_bh(&local->lock); in rxrpc_io_thread()
458 spin_unlock_bh(&local->lock); in rxrpc_io_thread()
466 &local->client_conn_flags)) in rxrpc_io_thread()
467 rxrpc_discard_expired_client_conns(local); in rxrpc_io_thread()
470 if ((call = list_first_entry_or_null(&local->call_attend_q, in rxrpc_io_thread()
473 spin_lock_bh(&local->lock); in rxrpc_io_thread()
475 spin_unlock_bh(&local->lock); in rxrpc_io_thread()
483 if (!list_empty(&local->new_client_calls)) in rxrpc_io_thread()
484 rxrpc_connect_client_calls(local); in rxrpc_io_thread()
492 if (!rxrpc_input_packet(local, &skb)) in rxrpc_io_thread()
493 rxrpc_reject_packet(local, skb); in rxrpc_io_thread()
498 rxrpc_input_error(local, skb); in rxrpc_io_thread()
517 while ((skb = skb_peek(&local->rx_delay_queue))) { in rxrpc_io_thread()
520 skb = skb_dequeue(&local->rx_delay_queue); in rxrpc_io_thread()
521 skb_queue_tail(&local->rx_queue, skb); in rxrpc_io_thread()
525 if (!skb_queue_empty(&local->rx_queue)) { in rxrpc_io_thread()
526 spin_lock_irq(&local->rx_queue.lock); in rxrpc_io_thread()
527 skb_queue_splice_tail_init(&local->rx_queue, &rx_queue); in rxrpc_io_thread()
528 spin_unlock_irq(&local->rx_queue.lock); in rxrpc_io_thread()
534 if (!skb_queue_empty(&local->rx_queue) || in rxrpc_io_thread()
535 !list_empty(&local->call_attend_q) || in rxrpc_io_thread()
536 !list_empty(&local->conn_attend_q) || in rxrpc_io_thread()
537 !list_empty(&local->new_client_calls) || in rxrpc_io_thread()
539 &local->client_conn_flags)) { in rxrpc_io_thread()
548 skb = skb_peek(&local->rx_delay_queue); in rxrpc_io_thread()
572 rxrpc_see_local(local, rxrpc_local_stop); in rxrpc_io_thread()
573 rxrpc_destroy_local(local); in rxrpc_io_thread()
574 WRITE_ONCE(local->io_thread, NULL); in rxrpc_io_thread()
575 rxrpc_see_local(local, rxrpc_local_stopped); in rxrpc_io_thread()