summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/netronome/nfp/crypto/tls.c
diff options
context:
space:
mode:
authorJakub Kicinski <jakub.kicinski@netronome.com>2019-06-10 21:40:08 -0700
committerDavid S. Miller <davem@davemloft.net>2019-06-11 12:22:27 -0700
commiteeb2efaf36c75753f9028de3500669bddfac81a8 (patch)
tree14a877922a5439e575346eb436ffcacb63d61b5c /drivers/net/ethernet/netronome/nfp/crypto/tls.c
parentc0a4948e1ddab4d90b535c2c5488d85a3db76305 (diff)
net/tls: generalize the resync callback
Currently only RX direction is ever resynced, however, TX may also get out of sequence if packets get dropped on the way to the driver. Rename the resync callback and add a direction parameter. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/crypto/tls.c')
-rw-r--r--drivers/net/ethernet/netronome/nfp/crypto/tls.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/crypto/tls.c b/drivers/net/ethernet/netronome/nfp/crypto/tls.c
index 4427c1d42047..93f87b7633b1 100644
--- a/drivers/net/ethernet/netronome/nfp/crypto/tls.c
+++ b/drivers/net/ethernet/netronome/nfp/crypto/tls.c
@@ -383,14 +383,17 @@ nfp_net_tls_del(struct net_device *netdev, struct tls_context *tls_ctx,
}
static void
-nfp_net_tls_resync_rx(struct net_device *netdev, struct sock *sk, u32 seq,
- u8 *rcd_sn)
+nfp_net_tls_resync(struct net_device *netdev, struct sock *sk, u32 seq,
+ u8 *rcd_sn, enum tls_offload_ctx_dir direction)
{
struct nfp_net *nn = netdev_priv(netdev);
struct nfp_net_tls_offload_ctx *ntls;
struct nfp_crypto_req_update *req;
struct sk_buff *skb;
+ if (WARN_ON_ONCE(direction != TLS_OFFLOAD_CTX_DIR_RX))
+ return;
+
skb = nfp_net_tls_alloc_simple(nn, sizeof(*req), GFP_ATOMIC);
if (!skb)
return;
@@ -411,7 +414,7 @@ nfp_net_tls_resync_rx(struct net_device *netdev, struct sock *sk, u32 seq,
static const struct tlsdev_ops nfp_net_tls_ops = {
.tls_dev_add = nfp_net_tls_add,
.tls_dev_del = nfp_net_tls_del,
- .tls_dev_resync_rx = nfp_net_tls_resync_rx,
+ .tls_dev_resync = nfp_net_tls_resync,
};
static int nfp_net_tls_reset(struct nfp_net *nn)