Lines Matching refs:sk
84 struct sock sk; member
113 static inline struct raw_sock *raw_sk(const struct sock *sk) in raw_sk() argument
115 return (struct raw_sock *)sk; in raw_sk()
120 struct sock *sk = (struct sock *)data; in raw_rcv() local
121 struct raw_sock *ro = raw_sk(sk); in raw_rcv()
127 if (!ro->recv_own_msgs && oskb->sk == sk) in raw_rcv()
175 if (oskb->sk) in raw_rcv()
177 if (oskb->sk == sk) in raw_rcv()
180 if (sock_queue_rcv_skb(sk, skb) < 0) in raw_rcv()
184 static int raw_enable_filters(struct net_device *dev, struct sock *sk, in raw_enable_filters() argument
193 raw_rcv, sk, "raw"); in raw_enable_filters()
199 raw_rcv, sk); in raw_enable_filters()
207 static int raw_enable_errfilter(struct net_device *dev, struct sock *sk, in raw_enable_errfilter() argument
214 raw_rcv, sk, "raw"); in raw_enable_errfilter()
219 static void raw_disable_filters(struct net_device *dev, struct sock *sk, in raw_disable_filters() argument
226 raw_rcv, sk); in raw_disable_filters()
230 struct sock *sk, in raw_disable_errfilter() argument
236 raw_rcv, sk); in raw_disable_errfilter()
240 struct sock *sk) in raw_disable_allfilters() argument
242 struct raw_sock *ro = raw_sk(sk); in raw_disable_allfilters()
244 raw_disable_filters(dev, sk, ro->filter, ro->count); in raw_disable_allfilters()
245 raw_disable_errfilter(dev, sk, ro->err_mask); in raw_disable_allfilters()
248 static int raw_enable_allfilters(struct net_device *dev, struct sock *sk) in raw_enable_allfilters() argument
250 struct raw_sock *ro = raw_sk(sk); in raw_enable_allfilters()
253 err = raw_enable_filters(dev, sk, ro->filter, ro->count); in raw_enable_allfilters()
255 err = raw_enable_errfilter(dev, sk, ro->err_mask); in raw_enable_allfilters()
257 raw_disable_filters(dev, sk, ro->filter, ro->count); in raw_enable_allfilters()
268 struct sock *sk = &ro->sk; in raw_notifier() local
282 lock_sock(sk); in raw_notifier()
285 raw_disable_allfilters(dev, sk); in raw_notifier()
293 release_sock(sk); in raw_notifier()
295 sk->sk_err = ENODEV; in raw_notifier()
296 if (!sock_flag(sk, SOCK_DEAD)) in raw_notifier()
297 sk->sk_error_report(sk); in raw_notifier()
301 sk->sk_err = ENETDOWN; in raw_notifier()
302 if (!sock_flag(sk, SOCK_DEAD)) in raw_notifier()
303 sk->sk_error_report(sk); in raw_notifier()
310 static int raw_init(struct sock *sk) in raw_init() argument
312 struct raw_sock *ro = raw_sk(sk); in raw_init()
344 struct sock *sk = sock->sk; in raw_release() local
347 if (!sk) in raw_release()
350 ro = raw_sk(sk); in raw_release()
354 lock_sock(sk); in raw_release()
363 raw_disable_allfilters(dev, sk); in raw_release()
367 raw_disable_allfilters(NULL, sk); in raw_release()
378 sock_orphan(sk); in raw_release()
379 sock->sk = NULL; in raw_release()
381 release_sock(sk); in raw_release()
382 sock_put(sk); in raw_release()
390 struct sock *sk = sock->sk; in raw_bind() local
391 struct raw_sock *ro = raw_sk(sk); in raw_bind()
399 lock_sock(sk); in raw_bind()
423 err = raw_enable_allfilters(dev, sk); in raw_bind()
429 err = raw_enable_allfilters(NULL, sk); in raw_bind()
440 raw_disable_allfilters(dev, sk); in raw_bind()
444 raw_disable_allfilters(NULL, sk); in raw_bind()
451 release_sock(sk); in raw_bind()
454 sk->sk_err = ENETDOWN; in raw_bind()
455 if (!sock_flag(sk, SOCK_DEAD)) in raw_bind()
456 sk->sk_error_report(sk); in raw_bind()
466 struct sock *sk = sock->sk; in raw_getname() local
467 struct raw_sock *ro = raw_sk(sk); in raw_getname()
484 struct sock *sk = sock->sk; in raw_setsockopt() local
485 struct raw_sock *ro = raw_sk(sk); in raw_setsockopt()
514 lock_sock(sk); in raw_setsockopt()
522 err = raw_enable_filters(dev, sk, &sfilter, 1); in raw_setsockopt()
524 err = raw_enable_filters(dev, sk, filter, in raw_setsockopt()
533 raw_disable_filters(dev, sk, ro->filter, ro->count); in raw_setsockopt()
553 release_sock(sk); in raw_setsockopt()
566 lock_sock(sk); in raw_setsockopt()
574 err = raw_enable_errfilter(dev, sk, err_mask); in raw_setsockopt()
580 raw_disable_errfilter(dev, sk, ro->err_mask); in raw_setsockopt()
590 release_sock(sk); in raw_setsockopt()
639 struct sock *sk = sock->sk; in raw_getsockopt() local
640 struct raw_sock *ro = raw_sk(sk); in raw_getsockopt()
655 lock_sock(sk); in raw_getsockopt()
664 release_sock(sk); in raw_getsockopt()
713 struct sock *sk = sock->sk; in raw_sendmsg() local
714 struct raw_sock *ro = raw_sk(sk); in raw_sendmsg()
745 skb = sock_alloc_send_skb(sk, size + sizeof(struct can_skb_priv), in raw_sendmsg()
758 sock_tx_timestamp(sk, &skb_shinfo(skb)->tx_flags); in raw_sendmsg()
761 skb->sk = sk; in raw_sendmsg()
762 skb->priority = sk->sk_priority; in raw_sendmsg()
784 struct sock *sk = sock->sk; in raw_recvmsg() local
792 skb = skb_recv_datagram(sk, flags, noblock, &err); in raw_recvmsg()
803 skb_free_datagram(sk, skb); in raw_recvmsg()
807 sock_recv_ts_and_drops(msg, sk, skb); in raw_recvmsg()
818 skb_free_datagram(sk, skb); in raw_recvmsg()