On Tue, May 13, 2014 at 04:40:58PM -0700, Tim Chen wrote: > On Wed, 2014-05-14 at 07:34 +0800, Herbert Xu wrote: > > > > > Why do we need this patch since kmap_atomic is equivalent to > > page_address plus preempt_disable on x86-64? > > For multi-buffers, you may still have some data lanes with jobs > that are partially completed when you need to put the thread > to sleep. With kmap_atomic, you cannot sleep before unmapping. Hmm, it seems that the existing users of this helper is abusing the ahash interface since if they were really asynchronous they would be sleeping on this kmap_atomic. So we should keep the existing hash walk interface for sync users only and create a new interface for async users. They could in fact share the same underlying code and use the ASYNC bit to indicate that we're async. In which case your patch would basically do kmap if ASYNC and kmap_atomic otherwise. I'll try to make such a patch. Eventually the existing users (which appear to be polling) should either be converted over to shash or switch to interrupt-based completion. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html