Use the async digest in-kernel crypto API instead of the synchronous digest API. This has the advantage of being able to use synchronous as well as asynchronous digest implementations as the in-kernel API has an automatic wrapping mechanism to provide all synchronous digests via the asynch API. Please note this code is elementary tested but needs some more test coverage before integration. I can't do that as I only have a s390 platform but I assume someone from dmcrypt/dmintegrity will run a more sophisticated test suite on this. Changelog: v1: First implementation. Tested with crc32, sha256, hmac-sha256 and the s390 specific implementations for hmac-sha256 and protected key phmac-sha256. Also ran with some instrumented code (in the digest implementation) to verify that in fact now the code runs asynchronous. Harald Freudenberger (1): dm-integrity: Implement asynch digest support drivers/md/dm-integrity.c | 220 ++++++++++++++++++++++++-------------- 1 file changed, 138 insertions(+), 82 deletions(-) base-commit: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4 -- 2.43.0