Lines Matching refs:opt
101 struct ipv6_txoptions *opt) in ipv6_update_options() argument
104 if (opt && in ipv6_update_options()
108 icsk->icsk_ext_hdr_len = opt->opt_flen + opt->opt_nflen; in ipv6_update_options()
112 opt = xchg((__force struct ipv6_txoptions **)&inet6_sk(sk)->opt, in ipv6_update_options()
113 opt); in ipv6_update_options()
116 return opt; in ipv6_update_options()
324 struct ipv6_txoptions *opt; in ipv6_set_opt_hdr() local
351 opt = rcu_dereference_protected(np->opt, lockdep_sock_is_held(sk)); in ipv6_set_opt_hdr()
352 opt = ipv6_renew_options(sk, opt, optname, new); in ipv6_set_opt_hdr()
354 if (IS_ERR(opt)) in ipv6_set_opt_hdr()
355 return PTR_ERR(opt); in ipv6_set_opt_hdr()
359 if (optname == IPV6_RTHDR && opt && opt->srcrt) { in ipv6_set_opt_hdr()
360 struct ipv6_rt_hdr *rthdr = opt->srcrt; in ipv6_set_opt_hdr()
371 (struct ipv6_sr_hdr *)opt->srcrt; in ipv6_set_opt_hdr()
383 opt = ipv6_update_options(sk, opt); in ipv6_set_opt_hdr()
385 if (opt) { in ipv6_set_opt_hdr()
386 atomic_sub(opt->tot_len, &sk->sk_omem_alloc); in ipv6_set_opt_hdr()
387 txopt_put(opt); in ipv6_set_opt_hdr()
432 struct ipv6_txoptions *opt; in do_ipv6_setsockopt() local
500 opt = xchg((__force struct ipv6_txoptions **)&np->opt, in do_ipv6_setsockopt()
502 if (opt) { in do_ipv6_setsockopt()
503 atomic_sub(opt->tot_len, &sk->sk_omem_alloc); in do_ipv6_setsockopt()
504 txopt_put(opt); in do_ipv6_setsockopt()
691 struct ipv6_txoptions *opt = NULL; in do_ipv6_setsockopt() local
710 opt = sock_kmalloc(sk, sizeof(*opt) + optlen, GFP_KERNEL); in do_ipv6_setsockopt()
712 if (!opt) in do_ipv6_setsockopt()
715 memset(opt, 0, sizeof(*opt)); in do_ipv6_setsockopt()
716 refcount_set(&opt->refcnt, 1); in do_ipv6_setsockopt()
717 opt->tot_len = sizeof(*opt) + optlen; in do_ipv6_setsockopt()
719 if (copy_from_sockptr(opt + 1, optval, optlen)) in do_ipv6_setsockopt()
723 msg.msg_control = (void *)(opt+1); in do_ipv6_setsockopt()
724 ipc6.opt = opt; in do_ipv6_setsockopt()
731 opt = ipv6_update_options(sk, opt); in do_ipv6_setsockopt()
733 if (opt) { in do_ipv6_setsockopt()
734 atomic_sub(opt->tot_len, &sk->sk_omem_alloc); in do_ipv6_setsockopt()
735 txopt_put(opt); in do_ipv6_setsockopt()
1021 static int ipv6_getsockopt_sticky(struct sock *sk, struct ipv6_txoptions *opt, in ipv6_getsockopt_sticky() argument
1026 if (!opt) in ipv6_getsockopt_sticky()
1031 hdr = opt->hopopt; in ipv6_getsockopt_sticky()
1034 hdr = opt->dst0opt; in ipv6_getsockopt_sticky()
1037 hdr = (struct ipv6_opt_hdr *)opt->srcrt; in ipv6_getsockopt_sticky()
1040 hdr = opt->dst1opt; in ipv6_getsockopt_sticky()
1254 struct ipv6_txoptions *opt; in do_ipv6_getsockopt() local
1257 opt = rcu_dereference_protected(np->opt, in do_ipv6_getsockopt()
1259 len = ipv6_getsockopt_sticky(sk, opt, optname, optval, len); in do_ipv6_getsockopt()