diff options
Diffstat (limited to 'net/tls/tls_device.c')
-rw-r--r-- | net/tls/tls_device.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c index 43f2deb57078..59f0c8dacbcc 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) |