Re: algif_aead: AIO broken with more than one iocb
Am Dienstag, 13. September 2016, 18:12:46 CET schrieb Herbert Xu: Hi Herbert, > On Sun, Sep 11, 2016 at 04:59:19AM +0200, Stephan Mueller wrote: > > Hi Herbert, > > > > The AIO support for algif_aead is broken when submitting more than one > > iocb.> > > The break happens in aead_recvmsg_async at the following code: > > /* ensure output buffer is sufficiently large */ > > if (usedpages < outlen) > > > > goto free; > > > > The reason is that when submitting, say, two iocb, ctx->used contains the > > buffer length for two AEAD operations (as expected). However, the recvmsg > > code > I don't think we should allow that. We should make it so that you > must start a recvmsg before you can send data for a new request. > > Remember that the async path should be identical to the sync path, > except that you don't wait for completion. Just as a followup: with the patch submitted the other day to cover the AAD and tag handling, the algif_aead now supports also multiple iocb. Ciao Stephan -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: algif_aead: AIO broken with more than one iocb
Am Dienstag, 13. September 2016, 18:12:46 CEST schrieb Herbert Xu: Hi Herbert, > I don't think we should allow that. We should make it so that you > must start a recvmsg before you can send data for a new request. > > Remember that the async path should be identical to the sync path, > except that you don't wait for completion. The question is, how does the algif code knows when more than one iocb was submitted? Note, each iocb is translated into an independent call of the recvmsg_async. Ciao Stephan -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: algif_aead: AIO broken with more than one iocb
Am Sonntag, 11. September 2016, 08:43:00 CEST schrieb Jeffrey Walton: Hi Jeffrey, > > The AIO support for algif_aead is broken when submitting more than one > > iocb. > > The break happens in aead_recvmsg_async at the following code: > I think the kernel needs to take a half step back, and add the missing > self tests and test cases to be more proactive in detecting breaks > earlier. Speaking first hand, some of these breaks have existed for > months. > > I don't take the position you can't break things. I believe you can't > make an omelet without breaking eggs; and if you're not breaking > something, then you're probably not getting anything done. The > engineering defect is not detecting the break. The testing that is implemented for libkcapi should cover almost all code paths of AF_ALG in the kernel. However, I just added the AIO support to the library in the last few days as this logic is not straight forward. Thus these issues show up now. If you wish to analyze the AIO support more, I can certainly push my current development branch of libkcapi to my github tree so that you would have a working AIO user space component. Ciao Stephan -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html