Lines Matching refs:sk
92 static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb);
289 struct sock *sk; in pppoe_flush_dev() local
299 sk = sk_pppox(po); in pppoe_flush_dev()
309 sock_hold(sk); in pppoe_flush_dev()
311 lock_sock(sk); in pppoe_flush_dev()
314 sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND | PPPOX_ZOMBIE)) { in pppoe_flush_dev()
315 pppox_unbind_sock(sk); in pppoe_flush_dev()
316 sk->sk_state_change(sk); in pppoe_flush_dev()
321 release_sock(sk); in pppoe_flush_dev()
322 sock_put(sk); in pppoe_flush_dev()
372 static int pppoe_rcv_core(struct sock *sk, struct sk_buff *skb) in pppoe_rcv_core() argument
374 struct pppox_sock *po = pppox_sk(sk); in pppoe_rcv_core()
382 if (sk->sk_state & PPPOX_BOUND) { in pppoe_rcv_core()
384 } else if (sk->sk_state & PPPOX_RELAY) { in pppoe_rcv_core()
385 relay_po = get_item_by_addr(sock_net(sk), in pppoe_rcv_core()
396 if (sock_queue_rcv_skb(sk, skb)) in pppoe_rcv_core()
485 struct sock *sk = sk_pppox(po); in pppoe_disc_rcv() local
487 bh_lock_sock(sk); in pppoe_disc_rcv()
494 if (sock_owned_by_user(sk) == 0) { in pppoe_disc_rcv()
498 sk->sk_state = PPPOX_ZOMBIE; in pppoe_disc_rcv()
501 bh_unlock_sock(sk); in pppoe_disc_rcv()
502 sock_put(sk); in pppoe_disc_rcv()
534 struct sock *sk; in pppoe_create() local
536 sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pppoe_sk_proto); in pppoe_create()
537 if (!sk) in pppoe_create()
540 sock_init_data(sock, sk); in pppoe_create()
545 sk->sk_backlog_rcv = pppoe_rcv_core; in pppoe_create()
546 sk->sk_state = PPPOX_NONE; in pppoe_create()
547 sk->sk_type = SOCK_STREAM; in pppoe_create()
548 sk->sk_family = PF_PPPOX; in pppoe_create()
549 sk->sk_protocol = PX_PROTO_OE; in pppoe_create()
556 struct sock *sk = sock->sk; in pppoe_release() local
561 if (!sk) in pppoe_release()
564 lock_sock(sk); in pppoe_release()
565 if (sock_flag(sk, SOCK_DEAD)) { in pppoe_release()
566 release_sock(sk); in pppoe_release()
570 po = pppox_sk(sk); in pppoe_release()
577 pppox_unbind_sock(sk); in pppoe_release()
580 sk->sk_state = PPPOX_DEAD; in pppoe_release()
582 net = sock_net(sk); in pppoe_release()
592 sock_orphan(sk); in pppoe_release()
593 sock->sk = NULL; in pppoe_release()
595 skb_queue_purge(&sk->sk_receive_queue); in pppoe_release()
596 release_sock(sk); in pppoe_release()
597 sock_put(sk); in pppoe_release()
605 struct sock *sk = sock->sk; in pppoe_connect() local
607 struct pppox_sock *po = pppox_sk(sk); in pppoe_connect()
613 lock_sock(sk); in pppoe_connect()
621 if ((sk->sk_state & PPPOX_CONNECTED) && in pppoe_connect()
627 if ((sk->sk_state & PPPOX_DEAD) && in pppoe_connect()
635 pppox_unbind_sock(sk); in pppoe_connect()
636 pn = pppoe_pernet(sock_net(sk)); in pppoe_connect()
646 sk->sk_state = PPPOX_NONE; in pppoe_connect()
652 net = sock_net(sk); in pppoe_connect()
678 po->chan.private = sk; in pppoe_connect()
688 sk->sk_state = PPPOX_CONNECTED; in pppoe_connect()
694 release_sock(sk); in pppoe_connect()
712 memcpy(&sp.sa_addr.pppoe, &pppox_sk(sock->sk)->pppoe_pa, in pppoe_getname()
725 struct sock *sk = sock->sk; in pppoe_ioctl() local
726 struct pppox_sock *po = pppox_sk(sk); in pppoe_ioctl()
733 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppoe_ioctl()
747 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppoe_ioctl()
774 if (sk->sk_state & (PPPOX_BOUND | PPPOX_ZOMBIE | PPPOX_DEAD)) in pppoe_ioctl()
778 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppoe_ioctl()
796 relay_po = get_item_by_addr(sock_net(sk), &po->pppoe_relay); in pppoe_ioctl()
801 sk->sk_state |= PPPOX_RELAY; in pppoe_ioctl()
808 if (!(sk->sk_state & PPPOX_RELAY)) in pppoe_ioctl()
811 sk->sk_state &= ~PPPOX_RELAY; in pppoe_ioctl()
826 struct sock *sk = sock->sk; in pppoe_sendmsg() local
827 struct pppox_sock *po = pppox_sk(sk); in pppoe_sendmsg()
835 lock_sock(sk); in pppoe_sendmsg()
836 if (sock_flag(sk, SOCK_DEAD) || !(sk->sk_state & PPPOX_CONNECTED)) { in pppoe_sendmsg()
853 skb = sock_wmalloc(sk, hlen + sizeof(*ph) + total_len + in pppoe_sendmsg()
866 skb->priority = sk->sk_priority; in pppoe_sendmsg()
889 release_sock(sk); in pppoe_sendmsg()
898 static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) in __pppoe_xmit() argument
900 struct pppox_sock *po = pppox_sk(sk); in __pppoe_xmit()
913 if (sock_flag(sk, SOCK_DEAD) || !(sk->sk_state & PPPOX_CONNECTED)) in __pppoe_xmit()
957 struct sock *sk = (struct sock *)chan->private; in pppoe_xmit() local
958 return __pppoe_xmit(sk, skb); in pppoe_xmit()
968 struct sock *sk = sock->sk; in pppoe_recvmsg() local
972 if (sk->sk_state & PPPOX_BOUND) { in pppoe_recvmsg()
977 skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, in pppoe_recvmsg()