On Thu, 21 May 2020 14:28:27 +0530 Vinay Kumar Yadav wrote: > Considering the lock in fix ("pending" is local variable), when writer reads > pending == 0 [pending = atomic_read(&ctx->encrypt_pending); --> from > tls_sw_sendmsg()], > that means encrypt complete() [from tls_encrypt_done()] is already called.
Please indulge me with full sentences. I can't parse this. > and if pending == 1 [pending = atomic_read(&ctx->encrypt_pending); --> from > tls_sw_sendmsg()], > that means writer is going to wait for > atomic_dec_return(&ctx->decrypt_pending) and > complete() [from tls_encrypt_done()] to be called atomically. > > This way, writer is not going to proceed to encrypt next record on CPU0 > without complete().