From 014c829e13f6473fef69f0b28c461aabf0f3792f Mon Sep 17 00:00:00 2001 From: LeoLiu-oc Date: Mon, 22 Dec 2025 16:15:55 +0800 Subject: [PATCH 1/2] anolis: crypto: zhaoxin-aes: Update CPU ID matching to X86_MATCH_* macro ANBZ: #28354 The latest mainline kernel includes commit 93022482b294 ("x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL"), which causes matching failures when using the raw list initialization method. Switch to the X86_MATCH_VENDOR_FAM_FEATURE macro to prevent such problems. Signed-off-by: LeoLiu-oc --- drivers/crypto/Kconfig | 2 +- drivers/crypto/padlock-aes.c | 2 +- drivers/crypto/zhaoxin-aes.c | 13 +++++++------ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index e80b58d20ced..1af3dd8b1fb9 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -68,7 +68,7 @@ config CRYPTO_DEV_ZHAOXIN config CRYPTO_DEV_ZHAOXIN_AES tristate "Zhaoxin ACE driver for AES algorithm" depends on CRYPTO_DEV_ZHAOXIN - default CRYPTO_DEV_ZHAOXIN + default CRYPTO_DEV_ZHAOXIN select CRYPTO_BLKCIPHER select CRYPTO_AES help diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c index f0c3127941ae..eb5f9ede1090 100644 --- a/drivers/crypto/padlock-aes.c +++ b/drivers/crypto/padlock-aes.c @@ -475,7 +475,7 @@ static struct skcipher_alg cbc_aes_alg = { }; static const struct x86_cpu_id padlock_cpu_id[] = { - { X86_VENDOR_CENTAUR, 6, X86_MODEL_ANY, X86_FEATURE_XCRYPT }, + X86_MATCH_VENDOR_FAM_FEATURE(CENTAUR, 6, X86_FEATURE_XCRYPT, NULL), {} }; MODULE_DEVICE_TABLE(x86cpu, padlock_cpu_id); diff --git a/drivers/crypto/zhaoxin-aes.c b/drivers/crypto/zhaoxin-aes.c index 5f772b160387..a69d5eacfcf3 100644 --- a/drivers/crypto/zhaoxin-aes.c +++ b/drivers/crypto/zhaoxin-aes.c @@ -25,7 +25,7 @@ #include #include -#define DRIVER_VERSION "1.0.0" +#define DRIVER_VERSION "1.0.1" /* * Number of data blocks actually fetched for each xcrypt insn. @@ -456,18 +456,19 @@ static struct skcipher_alg cbc_aes_alg = { .decrypt = cbc_aes_decrypt, }; -static const struct x86_cpu_id zhaoxin_cpu_id[] = { - { X86_VENDOR_CENTAUR, 7, X86_MODEL_ANY, X86_STEPPING_ANY, X86_FEATURE_XCRYPT }, - { X86_VENDOR_ZHAOXIN, 7, X86_MODEL_ANY, X86_STEPPING_ANY, X86_FEATURE_XCRYPT }, +static const struct x86_cpu_id zhaoxin_aes_cpu_ids[] = { + X86_MATCH_VENDOR_FAM_FEATURE(ZHAOXIN, 6, X86_FEATURE_XCRYPT, NULL), + X86_MATCH_VENDOR_FAM_FEATURE(ZHAOXIN, 7, X86_FEATURE_XCRYPT, NULL), + X86_MATCH_VENDOR_FAM_FEATURE(CENTAUR, 7, X86_FEATURE_XCRYPT, NULL), {} }; -MODULE_DEVICE_TABLE(x86cpu, zhaoxin_cpu_id); +MODULE_DEVICE_TABLE(x86cpu, zhaoxin_aes_cpu_ids); static int __init padlock_init(void) { int ret; - if (!x86_match_cpu(zhaoxin_cpu_id)) + if (!x86_match_cpu(zhaoxin_aes_cpu_ids)) return -ENODEV; if (!boot_cpu_has(X86_FEATURE_XCRYPT_EN)) { -- Gitee From 77607c51938e079d3e2354c19454bcb517c56680 Mon Sep 17 00:00:00 2001 From: LeoLiu-oc Date: Mon, 22 Dec 2025 16:38:19 +0800 Subject: [PATCH 2/2] anolis: crypto: zhaoxin-sha: Update CPU ID matching to X86_MATCH_* macro ANBZ: #28354 The latest mainline kernel includes commit 93022482b294 ("x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL"), which causes matching failures when using the raw list initialization method. Switch to the X86_MATCH_VENDOR_FAM_FEATURE macro to prevent such problems. Signed-off-by: LeoLiu-oc --- drivers/crypto/Kconfig | 2 +- drivers/crypto/padlock-sha.c | 2 +- drivers/crypto/zhaoxin-sha.c | 13 +++++++------ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index 1af3dd8b1fb9..1758e426dfd0 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -82,7 +82,7 @@ config CRYPTO_DEV_ZHAOXIN_AES config CRYPTO_DEV_ZHAOXIN_SHA tristate "Zhaoxin ACE driver for SHA1 and SHA256 algorithms" depends on CRYPTO_DEV_ZHAOXIN - default CRYPTO_DEV_ZHAOXIN + default CRYPTO_DEV_ZHAOXIN select CRYPTO_HASH select CRYPTO_SHA1 select CRYPTO_SHA256 diff --git a/drivers/crypto/padlock-sha.c b/drivers/crypto/padlock-sha.c index 6c56a73e5f17..1986baf40f99 100644 --- a/drivers/crypto/padlock-sha.c +++ b/drivers/crypto/padlock-sha.c @@ -490,7 +490,7 @@ static struct shash_alg sha256_alg_nano = { }; static const struct x86_cpu_id padlock_sha_ids[] = { - { X86_VENDOR_CENTAUR, 6, X86_MODEL_ANY, X86_FEATURE_PHE }, + X86_MATCH_VENDOR_FAM_FEATURE(CENTAUR, 6, X86_FEATURE_PHE, NULL), {} }; MODULE_DEVICE_TABLE(x86cpu, padlock_sha_ids); diff --git a/drivers/crypto/zhaoxin-sha.c b/drivers/crypto/zhaoxin-sha.c index 8d24c3fa4592..7359e4fd3229 100644 --- a/drivers/crypto/zhaoxin-sha.c +++ b/drivers/crypto/zhaoxin-sha.c @@ -19,7 +19,7 @@ #include #include -#define DRIVER_VERSION "1.0.0" +#define DRIVER_VERSION "1.0.1" static inline void padlock_output_block(uint32_t *src, uint32_t *dst, size_t count) { @@ -246,12 +246,13 @@ static struct shash_alg sha256_alg_zhaoxin = { } }; -static const struct x86_cpu_id zhaoxin_sha_ids[] = { - { X86_VENDOR_CENTAUR, 7, X86_MODEL_ANY, X86_STEPPING_ANY, X86_FEATURE_PHE }, - { X86_VENDOR_ZHAOXIN, 7, X86_MODEL_ANY, X86_STEPPING_ANY, X86_FEATURE_PHE }, +static const struct x86_cpu_id zhaoxin_sha_cpu_ids[] = { + X86_MATCH_VENDOR_FAM_FEATURE(ZHAOXIN, 6, X86_FEATURE_PHE, NULL), + X86_MATCH_VENDOR_FAM_FEATURE(CENTAUR, 7, X86_FEATURE_PHE, NULL), + X86_MATCH_VENDOR_FAM_FEATURE(ZHAOXIN, 7, X86_FEATURE_PHE, NULL), {} }; -MODULE_DEVICE_TABLE(x86cpu, zhaoxin_sha_ids); +MODULE_DEVICE_TABLE(x86cpu, zhaoxin_sha_cpu_ids); static int __init padlock_init(void) { @@ -259,7 +260,7 @@ static int __init padlock_init(void) struct shash_alg *sha1; struct shash_alg *sha256; - if (!x86_match_cpu(zhaoxin_sha_ids) || !boot_cpu_has(X86_FEATURE_PHE_EN)) + if (!x86_match_cpu(zhaoxin_sha_cpu_ids) || !boot_cpu_has(X86_FEATURE_PHE_EN)) return -ENODEV; sha1 = &sha1_alg_zhaoxin; -- Gitee