diff options
author | Jakub Kicinski <kuba@kernel.org> | 2020-11-28 05:25:27 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2020-11-28 05:25:27 +0300 |
commit | 5c39f26e67c984db0fa95f9faecf06eb0198dce7 (patch) | |
tree | 821aaa43d3f5806134438daa531be6d171292c5f /net/tls/tls_device.c | |
parent | 6375da9dac8bec05a022f22ab22300cc824ec268 (diff) | |
parent | c84e1efae022071a4fcf9f1899bf71777c49943a (diff) | |
download | linux-5c39f26e67c984db0fa95f9faecf06eb0198dce7.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Trivial conflict in CAN, keep the net-next + the byteswap wrapper.
Conflicts:
drivers/net/can/usb/gs_usb.c
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/tls/tls_device.c')
-rw-r--r-- | net/tls/tls_device.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c index 6f93ad5b7200..6cc9fe778356 100644 --- a/net/tls/tls_device.c +++ b/net/tls/tls_device.c @@ -1262,6 +1262,8 @@ void tls_device_offload_cleanup_rx(struct sock *sk) if (tls_ctx->tx_conf != TLS_HW) { dev_put(netdev); tls_ctx->netdev = NULL; + } else { + set_bit(TLS_RX_DEV_CLOSED, &tls_ctx->flags); } out: up_read(&device_offload_lock); @@ -1291,7 +1293,8 @@ static int tls_device_down(struct net_device *netdev) if (ctx->tx_conf == TLS_HW) netdev->tlsdev_ops->tls_dev_del(netdev, ctx, TLS_OFFLOAD_CTX_DIR_TX); - if (ctx->rx_conf == TLS_HW) + if (ctx->rx_conf == TLS_HW && + !test_bit(TLS_RX_DEV_CLOSED, &ctx->flags)) netdev->tlsdev_ops->tls_dev_del(netdev, ctx, TLS_OFFLOAD_CTX_DIR_RX); WRITE_ONCE(ctx->netdev, NULL); |