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.
201 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_recvmsg_oob() local
206 skb = skb_peek(&rx->recvmsg_oobq); in rxrpc_recvmsg_oob()
229 skb_unlink(skb, &rx->recvmsg_oobq); in rxrpc_recvmsg_oob()
231 rxrpc_add_pending_oob(rx, skb); in rxrpc_recvmsg_oob()
248 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_recvmsg_data() local
271 * need the Rx lock to walk it. in rxrpc_recvmsg_data()
339 if (!rx->app_ops && in rxrpc_recvmsg_data()
340 !skb_queue_empty_lockless(&rx->recvmsg_oobq)) { in rxrpc_recvmsg_data()
370 struct rxrpc_sock *rx = rxrpc_sk(sock->sk); in rxrpc_recvmsg() local
384 timeo = sock_rcvtimeo(&rx->sk, flags & MSG_DONTWAIT); in rxrpc_recvmsg()
387 lock_sock(&rx->sk); in rxrpc_recvmsg()
390 if (RB_EMPTY_ROOT(&rx->calls) && in rxrpc_recvmsg()
391 list_empty(&rx->recvmsg_q) && in rxrpc_recvmsg()
392 skb_queue_empty_lockless(&rx->recvmsg_oobq) && in rxrpc_recvmsg()
393 rx->sk.sk_state != RXRPC_SERVER_LISTENING) { in rxrpc_recvmsg()
394 release_sock(&rx->sk); in rxrpc_recvmsg()
398 if (list_empty(&rx->recvmsg_q)) { in rxrpc_recvmsg()
405 release_sock(&rx->sk); in rxrpc_recvmsg()
408 prepare_to_wait_exclusive(sk_sleep(&rx->sk), &wait, in rxrpc_recvmsg()
410 ret = sock_error(&rx->sk); in rxrpc_recvmsg()
414 if (list_empty(&rx->recvmsg_q) && in rxrpc_recvmsg()
415 skb_queue_empty_lockless(&rx->recvmsg_oobq)) { in rxrpc_recvmsg()
421 finish_wait(sk_sleep(&rx->sk), &wait); in rxrpc_recvmsg()
426 if (!skb_queue_empty_lockless(&rx->recvmsg_oobq)) { in rxrpc_recvmsg()
428 release_sock(&rx->sk); in rxrpc_recvmsg()
439 spin_lock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
440 l = rx->recvmsg_q.next; in rxrpc_recvmsg()
445 skb_queue_empty(&rx->recvmsg_oobq)) { in rxrpc_recvmsg()
447 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
448 release_sock(&rx->sk); in rxrpc_recvmsg()
458 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
459 release_sock(&rx->sk); in rxrpc_recvmsg()
468 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
485 release_sock(&rx->sk); in rxrpc_recvmsg()
533 rxrpc_release_call(rx, call); in rxrpc_recvmsg()
552 spin_lock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
554 list_add(&call->recvmsg_link, &rx->recvmsg_q); in rxrpc_recvmsg()
556 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
557 } else if (list_is_first(&call->recvmsg_link, &rx->recvmsg_q)) { in rxrpc_recvmsg()
558 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
561 list_move(&call->recvmsg_link, &rx->recvmsg_q); in rxrpc_recvmsg()
562 spin_unlock_irq(&rx->recvmsg_lock); in rxrpc_recvmsg()
570 release_sock(&rx->sk); in rxrpc_recvmsg()
578 finish_wait(sk_sleep(&rx->sk), &wait); in rxrpc_recvmsg()