Lines Matching refs:optval
438 static int do_tls_getsockopt_conf(struct sock *sk, char __user *optval,
451 if (!optval || (len < sizeof(*crypto_info))) {
476 if (copy_to_user(optval, crypto_info, sizeof(*crypto_info)))
492 if (copy_to_user(optval, crypto_info, cipher_desc->crypto_info))
499 static int do_tls_getsockopt_tx_zc(struct sock *sk, char __user *optval,
513 if (copy_to_user(optval, &value, sizeof(value)))
519 static int do_tls_getsockopt_no_pad(struct sock *sk, char __user *optval,
541 if (copy_to_user(optval, &value, sizeof(value)))
548 char __user *optval, int __user *optlen)
557 rc = do_tls_getsockopt_conf(sk, optval, optlen,
561 rc = do_tls_getsockopt_tx_zc(sk, optval, optlen);
564 rc = do_tls_getsockopt_no_pad(sk, optval, optlen);
577 char __user *optval, int __user *optlen)
583 optname, optval, optlen);
585 return do_tls_getsockopt(sk, optname, optval, optlen);
588 static int do_tls_setsockopt_conf(struct sock *sk, sockptr_t optval,
598 if (sockptr_is_null(optval) || (optlen < sizeof(*crypto_info)))
613 rc = copy_from_sockptr(crypto_info, optval, sizeof(*crypto_info));
656 rc = copy_from_sockptr_offset(crypto_info + 1, optval,
715 static int do_tls_setsockopt_tx_zc(struct sock *sk, sockptr_t optval,
721 if (sockptr_is_null(optval) || optlen != sizeof(value))
724 if (copy_from_sockptr(&value, optval, sizeof(value)))
735 static int do_tls_setsockopt_no_pad(struct sock *sk, sockptr_t optval,
743 sockptr_is_null(optval) || optlen < sizeof(val))
746 rc = copy_from_sockptr(&val, optval, sizeof(val));
751 rc = check_zeroed_sockptr(optval, sizeof(val), optlen - sizeof(val));
767 static int do_tls_setsockopt(struct sock *sk, int optname, sockptr_t optval,
776 rc = do_tls_setsockopt_conf(sk, optval, optlen,
782 rc = do_tls_setsockopt_tx_zc(sk, optval, optlen);
786 rc = do_tls_setsockopt_no_pad(sk, optval, optlen);
796 sockptr_t optval, unsigned int optlen)
801 return ctx->sk_proto->setsockopt(sk, level, optname, optval,
804 return do_tls_setsockopt(sk, optname, optval, optlen);