Lines Matching full:rx

25 	struct rxrpc_sock *rx;  in rxrpc_notify_socket()  local
39 rx = rcu_dereference(call->socket); in rxrpc_notify_socket()
40 sk = &rx->sk; in rxrpc_notify_socket()
41 if (rx && sk->sk_state < RXRPC_CLOSE) { in rxrpc_notify_socket()
47 spin_lock_irq(&rx->recvmsg_lock); in rxrpc_notify_socket()
50 list_add_tail(&call->recvmsg_link, &rx->recvmsg_q); in rxrpc_notify_socket()
52 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_notify_socket()
108 * Discard a packet we've used up and advance the Rx window by one.
238 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_recvmsg_oob() local
243 skb = skb_peek(&rx->recvmsg_oobq); in rxrpc_recvmsg_oob()
266 skb_unlink(skb, &rx->recvmsg_oobq); in rxrpc_recvmsg_oob()
268 rxrpc_add_pending_oob(rx, skb); in rxrpc_recvmsg_oob()
285 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_recvmsg_data() local
308 * need the Rx lock to walk it. in rxrpc_recvmsg_data()
381 if (!rx->app_ops && in rxrpc_recvmsg_data()
382 !skb_queue_empty_lockless(&rx->recvmsg_oobq)) { in rxrpc_recvmsg_data()
412 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_recvmsg() local
426 timeo = sock_rcvtimeo(&rx->sk, flags & MSG_DONTWAIT); in rxrpc_recvmsg()
429 lock_sock(&rx->sk); in rxrpc_recvmsg()
432 if (RB_EMPTY_ROOT(&rx->calls) && in rxrpc_recvmsg()
433 list_empty(&rx->recvmsg_q) && in rxrpc_recvmsg()
434 skb_queue_empty_lockless(&rx->recvmsg_oobq) && in rxrpc_recvmsg()
435 rx->sk.sk_state != RXRPC_SERVER_LISTENING) { in rxrpc_recvmsg()
436 release_sock(&rx->sk); in rxrpc_recvmsg()
440 if (list_empty(&rx->recvmsg_q)) { in rxrpc_recvmsg()
447 release_sock(&rx->sk); in rxrpc_recvmsg()
450 prepare_to_wait_exclusive(sk_sleep(&rx->sk), &wait, in rxrpc_recvmsg()
452 ret = sock_error(&rx->sk); in rxrpc_recvmsg()
456 if (list_empty(&rx->recvmsg_q) && in rxrpc_recvmsg()
457 skb_queue_empty_lockless(&rx->recvmsg_oobq)) { in rxrpc_recvmsg()
463 finish_wait(sk_sleep(&rx->sk), &wait); in rxrpc_recvmsg()
468 if (!skb_queue_empty_lockless(&rx->recvmsg_oobq)) { in rxrpc_recvmsg()
470 release_sock(&rx->sk); in rxrpc_recvmsg()
481 spin_lock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
482 l = rx->recvmsg_q.next; in rxrpc_recvmsg()
487 skb_queue_empty(&rx->recvmsg_oobq)) { in rxrpc_recvmsg()
489 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
490 release_sock(&rx->sk); in rxrpc_recvmsg()
500 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
501 release_sock(&rx->sk); in rxrpc_recvmsg()
510 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
527 release_sock(&rx->sk); in rxrpc_recvmsg()
575 rxrpc_release_call(rx, call); in rxrpc_recvmsg()
594 spin_lock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
596 list_add(&call->recvmsg_link, &rx->recvmsg_q); in rxrpc_recvmsg()
598 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
599 } else if (list_is_first(&call->recvmsg_link, &rx->recvmsg_q)) { in rxrpc_recvmsg()
600 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
603 list_move(&call->recvmsg_link, &rx->recvmsg_q); in rxrpc_recvmsg()
604 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
612 release_sock(&rx->sk); in rxrpc_recvmsg()
620 finish_wait(sk_sleep(&rx->sk), &wait); in rxrpc_recvmsg()