diff options
Diffstat (limited to 'arch/x86/crypto/blake2s-glue.c')
| -rw-r--r-- | arch/x86/crypto/blake2s-glue.c | 10 | 
1 files changed, 4 insertions, 6 deletions
| diff --git a/arch/x86/crypto/blake2s-glue.c b/arch/x86/crypto/blake2s-glue.c index 06ef2d4a4701..6737bcea1fa1 100644 --- a/arch/x86/crypto/blake2s-glue.c +++ b/arch/x86/crypto/blake2s-glue.c @@ -32,16 +32,16 @@ void blake2s_compress_arch(struct blake2s_state *state,  			   const u32 inc)  {  	/* SIMD disables preemption, so relax after processing each page. */ -	BUILD_BUG_ON(PAGE_SIZE / BLAKE2S_BLOCK_SIZE < 8); +	BUILD_BUG_ON(SZ_4K / BLAKE2S_BLOCK_SIZE < 8);  	if (!static_branch_likely(&blake2s_use_ssse3) || !crypto_simd_usable()) {  		blake2s_compress_generic(state, block, nblocks, inc);  		return;  	} -	for (;;) { +	do {  		const size_t blocks = min_t(size_t, nblocks, -					    PAGE_SIZE / BLAKE2S_BLOCK_SIZE); +					    SZ_4K / BLAKE2S_BLOCK_SIZE);  		kernel_fpu_begin();  		if (IS_ENABLED(CONFIG_AS_AVX512) && @@ -52,10 +52,8 @@ void blake2s_compress_arch(struct blake2s_state *state,  		kernel_fpu_end();  		nblocks -= blocks; -		if (!nblocks) -			break;  		block += blocks * BLAKE2S_BLOCK_SIZE; -	} +	} while (nblocks);  }  EXPORT_SYMBOL(blake2s_compress_arch); |