net/tls: simplify seq calculation in handle_device_resync() [Linux 5.3]

This Linux kernel change "net/tls: simplify seq calculation in handle_device_resync()" is included in the Linux 5.3 release. This change is authored by Jakub Kicinski <jakub.kicinski [at] netronome.com> on Mon Jun 10 21:39:59 2019 -0700. The commit for this change in Linux stable tree is 4967373 (patch).

net/tls: simplify seq calculation in handle_device_resync()

We subtract "TLS_HEADER_SIZE - 1" from req_seq, then if they
match we add the same constant to seq.  Just add it to seq,
and we don't have to touch req_seq.

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>

There are 7 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 net/tls/tls_device.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c
index 43f2deb..59f0c8d 100644
--- a/net/tls/tls_device.c
+++ b/net/tls/tls_device.c
@@ -576,14 +576,13 @@ void handle_device_resync(struct sock *sk, u32 seq, u64 rcd_sn)

    rx_ctx = tls_offload_ctx_rx(tls_ctx);
    resync_req = atomic64_read(&rx_ctx->resync_req);
-   req_seq = (resync_req >> 32) - ((u32)TLS_HEADER_SIZE - 1);
+   req_seq = resync_req >> 32;
+   seq += TLS_HEADER_SIZE - 1;
    is_req_pending = resync_req;

    if (unlikely(is_req_pending) && req_seq == seq &&
-       atomic64_try_cmpxchg(&rx_ctx->resync_req, &resync_req, 0)) {
-       seq += TLS_HEADER_SIZE - 1;
+       atomic64_try_cmpxchg(&rx_ctx->resync_req, &resync_req, 0))
        tls_device_resync_rx(tls_ctx, sk, seq, rcd_sn);
-   }
 }

 static int tls_device_reencrypt(struct sock *sk, struct sk_buff *skb)

Leave a Reply

Your email address will not be published. Required fields are marked *