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()
385 if (sk->sk_state & PPPOX_BOUND) { in pppoe_rcv_core()
387 } else if (sk->sk_state & PPPOX_RELAY) { in pppoe_rcv_core()
388 relay_po = get_item_by_addr(sock_net(sk), in pppoe_rcv_core()
401 if (sock_queue_rcv_skb(sk, skb)) in pppoe_rcv_core()
466 struct sock *sk = sk_pppox(po); in pppoe_unbind_sock_work() local
468 lock_sock(sk); in pppoe_unbind_sock_work()
473 pppox_unbind_sock(sk); in pppoe_unbind_sock_work()
474 release_sock(sk); in pppoe_unbind_sock_work()
475 sock_put(sk); in pppoe_unbind_sock_work()
506 struct sock *sk = sk_pppox(po); in pppoe_disc_rcv() local
508 bh_lock_sock(sk); in pppoe_disc_rcv()
515 if (sock_owned_by_user(sk) == 0) { in pppoe_disc_rcv()
519 sk->sk_state = PPPOX_ZOMBIE; in pppoe_disc_rcv()
522 bh_unlock_sock(sk); in pppoe_disc_rcv()
524 sock_put(sk); in pppoe_disc_rcv()
556 struct sock *sk; in pppoe_create() local
558 sk = sk_alloc(net, PF_PPPOX, GFP_KERNEL, &pppoe_sk_proto, kern); in pppoe_create()
559 if (!sk) in pppoe_create()
562 sock_init_data(sock, sk); in pppoe_create()
567 sk->sk_backlog_rcv = pppoe_rcv_core; in pppoe_create()
568 sk->sk_state = PPPOX_NONE; in pppoe_create()
569 sk->sk_type = SOCK_STREAM; in pppoe_create()
570 sk->sk_family = PF_PPPOX; in pppoe_create()
571 sk->sk_protocol = PX_PROTO_OE; in pppoe_create()
573 INIT_WORK(&pppox_sk(sk)->proto.pppoe.padt_work, in pppoe_create()
581 struct sock *sk = sock->sk; in pppoe_release() local
586 if (!sk) in pppoe_release()
589 lock_sock(sk); in pppoe_release()
590 if (sock_flag(sk, SOCK_DEAD)) { in pppoe_release()
591 release_sock(sk); in pppoe_release()
595 po = pppox_sk(sk); in pppoe_release()
602 pppox_unbind_sock(sk); in pppoe_release()
605 sk->sk_state = PPPOX_DEAD; in pppoe_release()
607 net = sock_net(sk); in pppoe_release()
617 sock_orphan(sk); in pppoe_release()
618 sock->sk = NULL; in pppoe_release()
620 skb_queue_purge(&sk->sk_receive_queue); in pppoe_release()
621 release_sock(sk); in pppoe_release()
622 sock_put(sk); in pppoe_release()
630 struct sock *sk = sock->sk; in pppoe_connect() local
632 struct pppox_sock *po = pppox_sk(sk); in pppoe_connect()
638 lock_sock(sk); in pppoe_connect()
646 if ((sk->sk_state & PPPOX_CONNECTED) && in pppoe_connect()
652 if ((sk->sk_state & PPPOX_DEAD) && in pppoe_connect()
660 pppox_unbind_sock(sk); in pppoe_connect()
661 pn = pppoe_pernet(sock_net(sk)); in pppoe_connect()
676 sk->sk_state = PPPOX_NONE; in pppoe_connect()
682 net = sock_net(sk); in pppoe_connect()
708 po->chan.private = sk; in pppoe_connect()
718 sk->sk_state = PPPOX_CONNECTED; in pppoe_connect()
724 release_sock(sk); in pppoe_connect()
742 memcpy(&sp.sa_addr.pppoe, &pppox_sk(sock->sk)->pppoe_pa, in pppoe_getname()
755 struct sock *sk = sock->sk; in pppoe_ioctl() local
756 struct pppox_sock *po = pppox_sk(sk); in pppoe_ioctl()
763 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppoe_ioctl()
777 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppoe_ioctl()
804 if (sk->sk_state & (PPPOX_BOUND | PPPOX_ZOMBIE | PPPOX_DEAD)) in pppoe_ioctl()
808 if (!(sk->sk_state & PPPOX_CONNECTED)) in pppoe_ioctl()
826 relay_po = get_item_by_addr(sock_net(sk), &po->pppoe_relay); in pppoe_ioctl()
831 sk->sk_state |= PPPOX_RELAY; in pppoe_ioctl()
838 if (!(sk->sk_state & PPPOX_RELAY)) in pppoe_ioctl()
841 sk->sk_state &= ~PPPOX_RELAY; in pppoe_ioctl()
856 struct sock *sk = sock->sk; in pppoe_sendmsg() local
857 struct pppox_sock *po = pppox_sk(sk); in pppoe_sendmsg()
864 lock_sock(sk); in pppoe_sendmsg()
865 if (sock_flag(sk, SOCK_DEAD) || !(sk->sk_state & PPPOX_CONNECTED)) { in pppoe_sendmsg()
882 skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32, in pppoe_sendmsg()
895 skb->priority = sk->sk_priority; in pppoe_sendmsg()
918 release_sock(sk); in pppoe_sendmsg()
927 static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) in __pppoe_xmit() argument
929 struct pppox_sock *po = pppox_sk(sk); in __pppoe_xmit()
942 if (sock_flag(sk, SOCK_DEAD) || !(sk->sk_state & PPPOX_CONNECTED)) in __pppoe_xmit()
986 struct sock *sk = (struct sock *)chan->private; in pppoe_xmit() local
987 return __pppoe_xmit(sk, skb); in pppoe_xmit()
997 struct sock *sk = sock->sk; in pppoe_recvmsg() local
1001 if (sk->sk_state & PPPOX_BOUND) { in pppoe_recvmsg()
1006 skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, in pppoe_recvmsg()