Message ID | d42dbd07c7f7a9a2ec465fde1badf16a2304b996.1673952268.git.sd@queasysnail.net (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | tls: implement key updates for TLS1.3 | expand |
On 17.01.2023 13:45, Sabrina Dubroca wrote: > It's not really needed since we end up refetching it as tls_ctx. We > can also remove the NULL check, since we have already dereferenced ctx > in do_tls_setsockopt_conf. > > Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> > Tested-by: Frantisek Krenzelok <fkrenzel@redhat.com> > --- > net/tls/tls.h | 2 +- > net/tls/tls_device.c | 2 +- > net/tls/tls_main.c | 4 ++-- > net/tls/tls_sw.c | 11 +++-------- > 4 files changed, 7 insertions(+), 12 deletions(-) > > diff --git a/net/tls/tls.h b/net/tls/tls.h > index 0e840a0c3437..34d0fe814600 100644 > --- a/net/tls/tls.h > +++ b/net/tls/tls.h > @@ -90,7 +90,7 @@ int tls_sk_attach(struct sock *sk, int optname, char __user *optval, > unsigned int optlen); > void tls_err_abort(struct sock *sk, int err); > > -int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx); > +int tls_set_sw_offload(struct sock *sk, int tx); > void tls_update_rx_zc_capable(struct tls_context *tls_ctx); > void tls_sw_strparser_arm(struct sock *sk, struct tls_context *ctx); > void tls_sw_strparser_done(struct tls_context *tls_ctx); > diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c > index 6c593788dc25..c149f36b42ee 100644 > --- a/net/tls/tls_device.c > +++ b/net/tls/tls_device.c > @@ -1291,7 +1291,7 @@ int tls_set_device_offload_rx(struct sock *sk, struct tls_context *ctx) > context->resync_nh_reset = 1; > > ctx->priv_ctx_rx = context; > - rc = tls_set_sw_offload(sk, ctx, 0); > + rc = tls_set_sw_offload(sk, 0); > if (rc) > goto release_ctx; > > diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c > index 3735cb00905d..fb1da1780f50 100644 > --- a/net/tls/tls_main.c > +++ b/net/tls/tls_main.c > @@ -772,7 +772,7 @@ static int do_tls_setsockopt_conf(struct sock *sk, sockptr_t optval, > TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSTXDEVICE); > TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSCURRTXDEVICE); > } else { > - rc = tls_set_sw_offload(sk, ctx, 1); > + rc = tls_set_sw_offload(sk, 1); > if (rc) > goto err_crypto_info; > TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSTXSW); > @@ -786,7 +786,7 @@ static int do_tls_setsockopt_conf(struct sock *sk, sockptr_t optval, > TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSRXDEVICE); > TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSCURRRXDEVICE); > } else { > - rc = tls_set_sw_offload(sk, ctx, 0); > + rc = tls_set_sw_offload(sk, 0); > if (rc) > goto err_crypto_info; > TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSRXSW); > diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c > index 9ed978634125..238562f9081b 100644 > --- a/net/tls/tls_sw.c > +++ b/net/tls/tls_sw.c > @@ -2462,10 +2462,10 @@ void tls_update_rx_zc_capable(struct tls_context *tls_ctx) > tls_ctx->prot_info.version != TLS_1_3_VERSION; > } > > -int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx) > +int tls_set_sw_offload(struct sock *sk, int tx) > { > - struct tls_context *tls_ctx = tls_get_ctx(sk); > - struct tls_prot_info *prot = &tls_ctx->prot_info; > + struct tls_context *ctx = tls_get_ctx(sk); > + struct tls_prot_info *prot = &ctx->prot_info; nit: while you are here it's good idea to rearrange variables to follow reverse xmas tree rule > struct tls_crypto_info *crypto_info; > struct tls_sw_context_tx *sw_ctx_tx = NULL; > struct tls_sw_context_rx *sw_ctx_rx = NULL; > @@ -2477,11 +2477,6 @@ int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx) > size_t keysize; > int rc = 0; > > - if (!ctx) { > - rc = -EINVAL; > - goto out; > - } > - > if (tx) { > if (!ctx->priv_ctx_tx) { > sw_ctx_tx = kzalloc(sizeof(*sw_ctx_tx), GFP_KERNEL); we may consider changing tls_set_device_offload{,_rx} the same for consistency. Reviewed-by: Vadim Fedorenko <vfedorenko@novek.ru>
diff --git a/net/tls/tls.h b/net/tls/tls.h index 0e840a0c3437..34d0fe814600 100644 --- a/net/tls/tls.h +++ b/net/tls/tls.h @@ -90,7 +90,7 @@ int tls_sk_attach(struct sock *sk, int optname, char __user *optval, unsigned int optlen); void tls_err_abort(struct sock *sk, int err); -int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx); +int tls_set_sw_offload(struct sock *sk, int tx); void tls_update_rx_zc_capable(struct tls_context *tls_ctx); void tls_sw_strparser_arm(struct sock *sk, struct tls_context *ctx); void tls_sw_strparser_done(struct tls_context *tls_ctx); diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c index 6c593788dc25..c149f36b42ee 100644 --- a/net/tls/tls_device.c +++ b/net/tls/tls_device.c @@ -1291,7 +1291,7 @@ int tls_set_device_offload_rx(struct sock *sk, struct tls_context *ctx) context->resync_nh_reset = 1; ctx->priv_ctx_rx = context; - rc = tls_set_sw_offload(sk, ctx, 0); + rc = tls_set_sw_offload(sk, 0); if (rc) goto release_ctx; diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c index 3735cb00905d..fb1da1780f50 100644 --- a/net/tls/tls_main.c +++ b/net/tls/tls_main.c @@ -772,7 +772,7 @@ static int do_tls_setsockopt_conf(struct sock *sk, sockptr_t optval, TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSTXDEVICE); TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSCURRTXDEVICE); } else { - rc = tls_set_sw_offload(sk, ctx, 1); + rc = tls_set_sw_offload(sk, 1); if (rc) goto err_crypto_info; TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSTXSW); @@ -786,7 +786,7 @@ static int do_tls_setsockopt_conf(struct sock *sk, sockptr_t optval, TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSRXDEVICE); TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSCURRRXDEVICE); } else { - rc = tls_set_sw_offload(sk, ctx, 0); + rc = tls_set_sw_offload(sk, 0); if (rc) goto err_crypto_info; TLS_INC_STATS(sock_net(sk), LINUX_MIB_TLSRXSW); diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index 9ed978634125..238562f9081b 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -2462,10 +2462,10 @@ void tls_update_rx_zc_capable(struct tls_context *tls_ctx) tls_ctx->prot_info.version != TLS_1_3_VERSION; } -int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx) +int tls_set_sw_offload(struct sock *sk, int tx) { - struct tls_context *tls_ctx = tls_get_ctx(sk); - struct tls_prot_info *prot = &tls_ctx->prot_info; + struct tls_context *ctx = tls_get_ctx(sk); + struct tls_prot_info *prot = &ctx->prot_info; struct tls_crypto_info *crypto_info; struct tls_sw_context_tx *sw_ctx_tx = NULL; struct tls_sw_context_rx *sw_ctx_rx = NULL; @@ -2477,11 +2477,6 @@ int tls_set_sw_offload(struct sock *sk, struct tls_context *ctx, int tx) size_t keysize; int rc = 0; - if (!ctx) { - rc = -EINVAL; - goto out; - } - if (tx) { if (!ctx->priv_ctx_tx) { sw_ctx_tx = kzalloc(sizeof(*sw_ctx_tx), GFP_KERNEL);