From 6778948f9de86c3cfaf36725a7c87dcff9ba247f Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 11 Dec 2023 08:20:59 +0000
Subject: [PATCH] kernel_5.10 no rt

---
 kernel/arch/x86/crypto/aesni-intel_glue.c |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/kernel/arch/x86/crypto/aesni-intel_glue.c b/kernel/arch/x86/crypto/aesni-intel_glue.c
index 29c716e..be891fd 100644
--- a/kernel/arch/x86/crypto/aesni-intel_glue.c
+++ b/kernel/arch/x86/crypto/aesni-intel_glue.c
@@ -379,14 +379,14 @@
 
 	err = skcipher_walk_virt(&walk, req, true);
 
+	kernel_fpu_begin();
 	while ((nbytes = walk.nbytes)) {
-		kernel_fpu_begin();
 		aesni_ecb_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr,
 			      nbytes & AES_BLOCK_MASK);
-		kernel_fpu_end();
 		nbytes &= AES_BLOCK_SIZE - 1;
 		err = skcipher_walk_done(&walk, nbytes);
 	}
+	kernel_fpu_end();
 
 	return err;
 }
@@ -401,14 +401,14 @@
 
 	err = skcipher_walk_virt(&walk, req, true);
 
+	kernel_fpu_begin();
 	while ((nbytes = walk.nbytes)) {
-		kernel_fpu_begin();
 		aesni_ecb_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr,
 			      nbytes & AES_BLOCK_MASK);
-		kernel_fpu_end();
 		nbytes &= AES_BLOCK_SIZE - 1;
 		err = skcipher_walk_done(&walk, nbytes);
 	}
+	kernel_fpu_end();
 
 	return err;
 }
@@ -423,14 +423,14 @@
 
 	err = skcipher_walk_virt(&walk, req, true);
 
+	kernel_fpu_begin();
 	while ((nbytes = walk.nbytes)) {
-		kernel_fpu_begin();
 		aesni_cbc_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr,
 			      nbytes & AES_BLOCK_MASK, walk.iv);
-		kernel_fpu_end();
 		nbytes &= AES_BLOCK_SIZE - 1;
 		err = skcipher_walk_done(&walk, nbytes);
 	}
+	kernel_fpu_end();
 
 	return err;
 }
@@ -445,14 +445,14 @@
 
 	err = skcipher_walk_virt(&walk, req, true);
 
+	kernel_fpu_begin();
 	while ((nbytes = walk.nbytes)) {
-		kernel_fpu_begin();
 		aesni_cbc_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr,
 			      nbytes & AES_BLOCK_MASK, walk.iv);
-		kernel_fpu_end();
 		nbytes &= AES_BLOCK_SIZE - 1;
 		err = skcipher_walk_done(&walk, nbytes);
 	}
+	kernel_fpu_end();
 
 	return err;
 }
@@ -500,20 +500,18 @@
 
 	err = skcipher_walk_virt(&walk, req, true);
 
+	kernel_fpu_begin();
 	while ((nbytes = walk.nbytes) >= AES_BLOCK_SIZE) {
-		kernel_fpu_begin();
 		aesni_ctr_enc_tfm(ctx, walk.dst.virt.addr, walk.src.virt.addr,
 			              nbytes & AES_BLOCK_MASK, walk.iv);
-		kernel_fpu_end();
 		nbytes &= AES_BLOCK_SIZE - 1;
 		err = skcipher_walk_done(&walk, nbytes);
 	}
 	if (walk.nbytes) {
-		kernel_fpu_begin();
 		ctr_crypt_final(ctx, &walk);
-		kernel_fpu_end();
 		err = skcipher_walk_done(&walk, 0);
 	}
+	kernel_fpu_end();
 
 	return err;
 }

--
Gitblit v1.6.2