Am Freitag, 23. Juni 2017, 11:06:30 CEST schrieb Stephan Müller: Hi Herbert, > Am Freitag, 23. Juni 2017, 08:10:48 CEST schrieb Herbert Xu: > > Hi Herbert, > > > On Wed, Jun 21, 2017 at 10:03:02PM +0200, Stephan Müller wrote: > > > + /* convert iovecs of output buffers into RX SGL */ > > > + while (len < ctx->used && msg_data_left(msg)) { > > > > How are we supposed to reach the wait path when ctx->used == 0? > > Right. > > May I ask whether that wait is correct to begin with? The recvmsg is > protected by a lock_sock. Thus, if the code is waiting, the lock is still > held. So, how can data be inserted into the socket by sendmsg/sendpage > while recvmsg is waiting? Don't we have a deadlock here? Please ignore that comment. I have implemented a new test set where the multithreaded operation of symmetric ciphers are tested. See [1]. Without the len < ctx->used, the multithreaded behavior works as intended. I will send an update shortly. Thanks Ciao Stephan [1] https://github.com/smuellerDD/libkcapi/commit/ 18fe09d7a39ecab8669f599c06a7964c18bb1a1f