File leancrypto-fix-aarch64-BTI.patch of Package leancrypto

From 06324fff10f75680f3966a8329c0e13d1ac27aa9 Mon Sep 17 00:00:00 2001
From: Stephan Mueller <smueller@chronox.de>
Date: Wed, 15 Oct 2025 09:19:09 +0200
Subject: [PATCH] ARMv9: fixes to ensure BTI is working

Signed-off-by: Stephan Mueller <smueller@chronox.de>
---
 ml-dsa/src/armv8/dilithium_intt_armv8.S |  6 ++----
 ml-dsa/src/armv8/dilithium_ntt_armv8.S  |  6 ++----
 ml-dsa/src/armv8/dilithium_poly_armv8.S | 18 ++++++------------
 3 files changed, 10 insertions(+), 20 deletions(-)

diff --git a/ml-dsa/src/armv8/dilithium_intt_armv8.S b/ml-dsa/src/armv8/dilithium_intt_armv8.S
index 280c404e..42675534 100644
--- a/ml-dsa/src/armv8/dilithium_intt_armv8.S
+++ b/ml-dsa/src/armv8/dilithium_intt_armv8.S
@@ -454,8 +454,7 @@ SYM_FUNC_ENTER(intt_SIMD_top_armv8)
     .unreq    counter
     pop_all
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(intt_SIMD_top_armv8)
 
 SYM_FUNC_START(intt_SIMD_bot_armv8)
@@ -542,8 +541,7 @@ SYM_FUNC_ENTER(intt_SIMD_bot_armv8)
     .unreq    counter
     pop_all
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(intt_SIMD_bot_armv8)
 
 LC_ASM_END
diff --git a/ml-dsa/src/armv8/dilithium_ntt_armv8.S b/ml-dsa/src/armv8/dilithium_ntt_armv8.S
index 195db091..3bb50e8f 100644
--- a/ml-dsa/src/armv8/dilithium_ntt_armv8.S
+++ b/ml-dsa/src/armv8/dilithium_ntt_armv8.S
@@ -224,8 +224,7 @@ SYM_FUNC_ENTER(ntt_SIMD_top_armv8)
     .unreq    counter
     pop_all
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(ntt_SIMD_top_armv8)
 
 SYM_FUNC_START(ntt_SIMD_bot_armv8)
@@ -298,8 +297,7 @@ SYM_FUNC_ENTER(ntt_SIMD_bot_armv8)
     .unreq    counter
     pop_all
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(ntt_SIMD_bot_armv8)
 
 LC_ASM_END
diff --git a/ml-dsa/src/armv8/dilithium_poly_armv8.S b/ml-dsa/src/armv8/dilithium_poly_armv8.S
index d56d16c0..43da2716 100644
--- a/ml-dsa/src/armv8/dilithium_poly_armv8.S
+++ b/ml-dsa/src/armv8/dilithium_poly_armv8.S
@@ -120,8 +120,7 @@ SYM_FUNC_ENTER(armv8_10_to_32)
     sub x7, x7, #1
     cbnz x7, _10_to_32_loop
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(armv8_10_to_32)
 
 SYM_FUNC_START(poly_reduce_armv8)
@@ -213,8 +212,7 @@ SYM_FUNC_ENTER(poly_reduce_armv8)
     st1 { v6.4S}, [x0], #16
     st1 { v7.4S}, [x0], #16
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(poly_reduce_armv8)
 
 SYM_FUNC_START(poly_caddq_armv8)
@@ -306,8 +304,7 @@ SYM_FUNC_ENTER(poly_caddq_armv8)
     st1 { v6.4S}, [x0], #16
     st1 { v7.4S}, [x0], #16
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(poly_caddq_armv8)
 
 SYM_FUNC_START(poly_power2round_armv8)
@@ -452,8 +449,7 @@ SYM_FUNC_ENTER(poly_power2round_armv8)
     st1 {v30.4S}, [x1], #16
     st1 {v31.4S}, [x1], #16
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(poly_power2round_armv8)
 
 SYM_FUNC_START(poly_pointwise_montgomery_armv8)
@@ -570,8 +566,7 @@ SYM_FUNC_ENTER(poly_pointwise_montgomery_armv8)
 
     pop_all
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(poly_pointwise_montgomery_armv8)
 
 SYM_FUNC_START(polyvecl_pointwise_acc_montgomery_armv8)
@@ -920,8 +915,7 @@ SYM_FUNC_ENTER(polyvecl_pointwise_acc_montgomery_armv8)
 
     pop_all
 
-    LC_ASM_LEAVE_HARDENING
-    br lr
+    RET
 SYM_FUNC_END(polyvecl_pointwise_acc_montgomery_armv8)
 
 LC_ASM_END
openSUSE Build Service is sponsored by