On Tue, 27 Mar 2018 23:06:30 +0530
Atul Gupta <atul.gu...@chelsio.com> wrote:

> +static struct tls_context *create_ctx(struct sock *sk)
> +{
> +     struct inet_connection_sock *icsk = inet_csk(sk);
> +     struct tls_context *ctx;
> +
> +     /* allocate tls context */
> +     ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
> +     if (!ctx)
> +             return NULL;
> +
> +     icsk->icsk_ulp_data = ctx;
> +     return ctx;
> +}
>
> [...]
>
>  static int tls_init(struct sock *sk)
>  {
>       int ip_ver = sk->sk_family == AF_INET6 ? TLSV6 : TLSV4;
> -     struct inet_connection_sock *icsk = inet_csk(sk);
>       struct tls_context *ctx;
>       int rc = 0;
>  
> +     if (tls_hw_prot(sk))
> +             goto out;
> +
>       /* The TLS ulp is currently supported only for TCP sockets
>        * in ESTABLISHED state.
>        * Supporting sockets in LISTEN state will require us
> @@ -530,12 +624,11 @@ static int tls_init(struct sock *sk)
>               return -ENOTSUPP;
>  
>       /* allocate tls context */
> -     ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
> +     ctx = create_ctx(sk);
>       if (!ctx) {
>               rc = -ENOMEM;
>               goto out;
>       }
> -     icsk->icsk_ulp_data = ctx;

Why are you changing this?

This is now equivalent to the original implementation, except that you
are "hiding" the assignment of icsk->icsk_ulp_data into a function named
"create_ctx".

Please also note that you are duplicating the "allocate tls context"
comment.

-- 
Stefano

Reply via email to