armbian-build/patch/kernel/archive/spacemit-6.18/005-Fixup-rtl8852bs-sha256.patch
Patrick Yavitz 41b0fa731b SpacemiT: Add linux-6.18.y support
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00

99 lines
3.8 KiB
Diff

From 1e130c0596fe0bf55d2a9731cae85af4a6417986 Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@gmail.com>
Date: Fri, 5 Dec 2025 16:31:44 -0500
Subject: [PATCH] Fixup rtl8852bs sha256
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
---
.../net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c | 4 ++++
drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c | 4 ++++
drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h | 4 ++++
3 files changed, 12 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c
index 642b38ff618c..df92ab3c27e8 100644
--- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c
+++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256-prf.c
@@ -28,12 +28,14 @@
* This function is used to derive new, cryptographically separate keys from a
* given key.
*/
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
int sha256_prf(const u8 *key, size_t key_len, const char *label,
const u8 *data, size_t data_len, u8 *buf, size_t buf_len)
{
return sha256_prf_bits(key, key_len, label, data, data_len, buf,
buf_len * 8);
}
+#endif
/**
@@ -52,6 +54,7 @@ int sha256_prf(const u8 *key, size_t key_len, const char *label,
* significant 1-7 bits of the last octet in the output are not part of the
* requested output.
*/
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
int sha256_prf_bits(const u8 *key, size_t key_len, const char *label,
const u8 *data, size_t data_len, u8 *buf,
size_t buf_len_bits)
@@ -107,3 +110,4 @@ int sha256_prf_bits(const u8 *key, size_t key_len, const char *label,
return 0;
}
+#endif
\ No newline at end of file
diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c
index ea5d9e3f2dd6..5f1c1441f2a4 100644
--- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c
+++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.c
@@ -23,6 +23,7 @@
* @mac: Buffer for the hash (32 bytes)
* Returns: 0 on success, -1 on failure
*/
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
const u8 *addr[], const size_t *len, u8 *mac)
{
@@ -86,6 +87,7 @@ int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
_len[1] = SHA256_MAC_LEN;
return sha256_vector(2, _addr, _len, mac);
}
+#endif
/**
@@ -97,8 +99,10 @@ int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
* @mac: Buffer for the hash (32 bytes)
* Returns: 0 on success, -1 on failure
*/
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
int hmac_sha256(const u8 *key, size_t key_len, const u8 *data,
size_t data_len, u8 *mac)
{
return hmac_sha256_vector(key, key_len, 1, &data, &data_len, mac);
}
+#endif
diff --git a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h
index 5219022edd7d..a086c8b4739d 100644
--- a/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h
+++ b/drivers/net/wireless/realtek/rtl8852bs/core/crypto/sha256.h
@@ -11,10 +11,14 @@
#define SHA256_MAC_LEN 32
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
int hmac_sha256_vector(const u8 *key, size_t key_len, size_t num_elem,
const u8 *addr[], const size_t *len, u8 *mac);
+#endif
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 18, 0))
int hmac_sha256(const u8 *key, size_t key_len, const u8 *data,
size_t data_len, u8 *mac);
+#endif
int sha256_prf(const u8 *key, size_t key_len, const char *label,
const u8 *data, size_t data_len, u8 *buf, size_t buf_len);
int sha256_prf_bits(const u8 *key, size_t key_len, const char *label,
--
2.47.3